2017-03-20 6 views
0

typeという名前のフィールド/メンバーを含むJava(既にこのクラスはXと呼ばれています)で書かれた既存のクラスがあります。Scalaから "type"という名前のJavaオブジェクトのフィールドにアクセスする方法

タイプXのオブジェクトを作成し、そのオブジェクトのtypeメンバーにアクセスするScalaクラス/オブジェクトを作成します。

しかし、typeはScalaのキーワードです。これは機能しません。 Eclipseのエラーメッセージは次のとおりです:identifier expected but 'type' found.

質問:名前を付けずにそのフィールドにアクセスできますか?


作業例:

Javaクラス:

public class X { 
    public final int type = 0; 
} 

スカーラアプリケーション:

object Playground extends App { 
    val x : X = new X(); 
    System.out.println(x.type); // This does not work! 
} 

答えて

1

バックテックを使用するか、ゲッターを定義します。

object Playground extends App { 
    val x : X = new X(); 
    System.out.println(x.`type`) 
} 

またはゲッターを使用して、

public class X { 
    public int type = 0; 

    public int getType() { 
    return type; 
    } 
} 

object Playground extends App { 
    val x : X = new X(); 
    System.out.println(x.getType()); 
} 
+0

ありがとう!フィールドは元のアプリケーションでは最終的なものです(質問を編集したばかりです)。ゲッターは意図的に作成しませんでしたが、良いアイデアです! –

+0

私は 'Getter'sのどちらか、あまりにも冗長で好きではありません。 'static'変数の' @ Getter'は素晴らしいとは言えません。 – prayagupd

関連する問題