Implementing ส่วนติดต่อของจาวาอยู่ใน Language อผลประเภททำงานเข้ากันไม่แผนที่

0

คำถาม

ฉันมีส่วนติดต่อของจาวาที่ฉันอยากด้วยอะไรซักอย่างใน Language. ที่บรรจุส่วนเชื่อมต่อตามวิธีการ-ปล่อยให้เธอได้หายใจอยู่อี:

 List<Map<String, Object>> xyz(Map<String, Object> var1, Map<String, Object> var2);

ฉัน Language implementation คือ:

override def testComponent( input: java.util.Map[String, Object], metadata: java.util.Map[String, Object] )
  {

    val list: util.List[Map[String, AnyRef]] = new util.ArrayList[Map[String, AnyRef]]

     return list
  }

เกิดข้อผิดพลาด:กำลังยกเลิกระบบวิธีการ xyz ใน trait ITester ของประเภท(x$1:จาวา.util.แผนที่[ข้อความ,สิ่ง]x 2 เหรียญ:จาวา.util.แผนที่[ข้อความ,สิ่ง])ของจาวา.util.รายชื่อ[จาวา.util.แผนที่[ข้อความ,สิ่ง]]; วิธีการ testComponent ทำงานเข้ากันไม่มีประเภท ยกเลิก def testComponent(ข้อมูล:จาวา.util.แผนที่[ข้อความ,สิ่ง],ข้อมูลกำกับภาพ:จาวา.util.แผนที่[ข้อความ,สิ่ง])

ฉันไม่รู้อะไรประเด็น

interface java scala scala-java-interop
2021-11-20 13:48:55
1

คำตอบที่ดีที่สุด

3

ความหมายของ testComponent มีประเภท Unit เพราะว่ามันถูกกำหนดการใช้(deprecated ในรุ่นล่าสุดของ Language)ขั้นตอนของไวยากรณ์ def name(args) { } (i.e. ไม่ = {). มันก่อนผ่านไป compilation เพราะ Language อนุญาตให้ใช้ค่าเป็นตอนที่ทิ้ง Unit คือคาดหวัง(งนั้นพฤติกรรมสามารถสร้างเป็นการเตือนกับคอมไพเลอร์ตัวเลือก -Ywarn-value-discard). คุณสามารถแก้ไขเรื่องนี้โดยการ explicit ว่าคุณอยากให้เรื่องนี้วิธีการที่จะเรียกว่าสำหรับค่าโดยรวมทั้งคน =.

override def testComponent(input: java.util.Map[String, Object], metadata: java.util.Map[String, Object]) = {
  val list: util.List[Map[String, AnyRef]] = new util.ArrayList[Map[String, AnyRef]]
  list  // return should be avoided in Scala: it's not necessary and can introduce some really subtle bugs
}

มันคือโดยทั่วไปเป็นความคิดที่ดีที่จะเป็น explicit เรื่องผลประเภทของสาธารณะวิธีการ. อีกทางเลือกนี่ควรจะทำงาน:

override def testComponent(input: java.util.Map[String, Object], metadata: java.util.Map[String, Object]) =
  new ArrayList[Map[String, AnyRef]]
2021-11-22 00:21:31

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่