問題タブ [eclipse-jdt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Eclipse での FindBugs と注釈
コード内のメソッドにタグを付けて、javax.annotation.CheckForNull
チェックせずnull
に別の場所で使用しています。このコードを Eclipse の FindBugs (プラグイン経由) で実行すると、警告は表示されません。
警告が表示されると仮定すると (そうでない場合、適切なテスト ケースは何ですか?)、表示されないのはなぜですか?
注釈に関連しない他の警告が表示されます。
eclipse - Eclipse で AST または CompilationUnit のフィールドへの参照を検索するにはどうすればよいですか?
やあ、
私はEclipseプラグインを開発しています。AST などを使用して、ソース内のすべての参照を見つける必要があります
jdt.core.dom
。ASTNodes
親ノードを取得し、参照が関係する式でいくつかのことを確認するために、この参照が必要です。事前に感謝します。
編集:
もう少し具体的にしたいのですが、私の問題は、定数への参照をいくつかキャッチしようとすることですが...この参照の一致をキャッチする方法がわかりません。決定された定数への参照が含まれている式を確認する必要があります。それらが使用されているメソッドのソースのみを取得します。
問題はスコープまたはパターンだと思います:
よろしくお願いします!
java - 解決されたフィールド/情報 - どういう意味ですか?
IField インターフェイスの実装を使用しています。「解決されたフィールド」を理解するのに問題があります - どういう意味ですか? 関数 isResolved() も存在します。
このフィールドが解決されたフィールドを表すかどうかを返します。フィールドが解決された場合、そのキーには解決された情報が含まれます。
どういう意味ですか?私が見つけられない、辞書でもオンラインでも見つからない、解決されたという言葉の2番目の意味はありますか?
java - CompilationUnit からのすべての変数の IFields
ソース コード内のすべての変数のIField または IJavaElement 参照を取得する必要があります。私はプラグインを使用し、次を使用してすべてのトップレベル オブジェクトを読み取ることができる ICompilationUnit を取得します。
for( IJavaElement i:unit.getTypes()[0].getChildren() )
また
for( IJavaElement i:unit.getAllTypes() )
ローカル変数にアクセスするにはどうすればよいですか? ICompilationUnit を CompilationUnit に解析しようとしましたが、ここで各 field の ASTNode を取得できますが、それを IField に変換することはできません。何か案は?
//編集: 例: クラスの場合:
パブリック クラス テスト {
int グローバル 1; int global2; ボイド a() { global1 = 4; int local1; int local2 = 5; }
}
電話する
for (IType タイプ : unit.getTypes()) { System.out.println("itype "+type); for (IField iField : type.getFields()) { System.out.println("iField "+iField); }}
出力は次のとおりです。
itype class Test [in [作業コピー] Test.java [in [in src [in testowy]]] int global1 int global2 void a() iField int global1 [in Test [in [作業コピー] Test.java [in [ in src [in testowy]]]]] iField int global2 [in Test [in [作業コピー] Test.java [in [in src [in testowy]]]]]
したがって、ローカル変数は見つかりませんでした...
//追加 - まだ苦労しています: 実際には、私が期待していた動作ではありません.
このコードは、すべてのメソッドを検索し (機能する)、メソッドからすべてのローカル変数を取得する (機能しない) ことを期待していました。フィールドでループに入ることはありません。関数宣言を正しく出力するので、すべての変数が表示されると確信しています...
また、INodes の使用に関しては、すべてのノードにアクセスできますが、タイプを Node から必要な IField/IJavaElement に変更するにはどうすればよいですか?
ありがとう :)
eclipse - Java エディターでポップアップの Eclipse 背景色を構成する方法
Eclipse JDE では、Java 要素の上にマウスを移動すると、「フォーカスのために F2 を押してください」というポップアップが表示されます。私の質問は、そのポップアップの背景色をどのように設定できますか? 設定で「色とフォント」に行きました。「黒」の背景ですべて試しましたが、まだ色を変更できません。
ubuntu 11.04でEclipse 3.7M7を使用しています。
色を変える方法を教えてください。
abstract-syntax-tree - 一部の VariableDeclaration resolveBinding が null を返し、他のものは返さない理由
Java ソース コードを分析するための Eclipse プラグインを開発しています。AST ツリー全体をトラバースし、各 variableDeclartionStatement にアクセスするためのビジターを記述します。一部の変数では、「resolvebinding」が IVariableBinding のインスタンスを返すことに気付きましたが、他の変数はそうではありません。それらを区別することはできません。ところで: ASTParser.setKind(K_COMPILATION_UNIT) と setResolveBindings(true) を設定しました。私のコードは次のとおりです。
私の質問は次のとおりです。バインドを解決できる変数宣言と、解決できない変数宣言をどのように区別できますか?
よろしくお願いします
java - Eclipseが「GenerateDelegateMethods」リファクタリングに@Overrideアノテーションを追加しないのはなぜですか?
Eclipseで、「GenerateDelegateMethods」リファクタリングを次のようなJavaクラスに適用しようとすると次のようになります。
@Override
Eclipseは、生成されたメソッドのアノテーションを生成しません。これはバグですか、それともこれには正当な理由がありますか?
java - java.lang.reflect への Eclipse JDT アダプター
java.lang.reflectに基づく既存の API にEclipse JDTを統合する必要があります。私の質問は次のとおりです。既存のインターフェースまたはアダプターはありますか? これを行う最善の方法は何ですか?誰でもこれを行うためのチュートリアルを教えてもらえますか?
たとえば、java.lang.reflect.Method
からを取得する必要がありますorg.eclipse.jdt.core.dom.IMethodBinding
。
同様に、またはjava.lang.Class
からを取得する必要があります。これは次の方法で実現できることがわかりました。org.eclipse.jdt.core.dom.Type
org.eclipse.jdt.core.dom.ITypeBinding
もちろん、これはクラスがクラスパスに既に存在し、JDT API を介して変更されていないことを前提とする非常に単純なソリューションであるため、完全にはほど遠いものです。しかし、これらの 2 つの仮定は、私の特定の状況にも当てはまります。
java - プログラムでJavaソースコードを変更する
EMF ANT-Task XSD2Javaを使用して、既存のXSDからJavaコードを生成しました。残念ながら、ANT-Taskは手動ツールほど正しく機能せず、「org.example.interface.something」のようなパッケージを生成します。したがって、キーワード「interface」はパッケージ名として許可されていません。コードを実行するためにリファクタリングしたいと思います。(UIを介してそれを行うと、パッケージ名は'org.example.interface_.something'になります)私の質問は:ソースファイルの依存関係を含むパッケージ名をリファクタリングする方法は?JDTを使用できますか?ヒントをありがとう。
カイ
java - java.lang.NoSuchMethodError:java.lang.NoSuchMethodError
Eclipseを介したTomcat7の実行報告されたエラーは次のとおりです。
jasper-jdt-6.0.13.jarとtomcat-6.0.16-jasper-jdt.jarの両方を試しましたが、どちらも同じエラーを報告します。ある意味、私が走ったからといって驚かないでください。
また、クラスorg.eclipse.jdt.internal.compiler.CompilationResultが含まれていません。しかし、このサイトhttp://www.java2s.com/Code/Jar/STUVWXYZ/Downloadtomcat6016jasperjdtjar.htmはそう言っています!!
誰かが正しいjarファイルとは何か、そしてそれをどこから取得するかを教えてもらえますか?繰り返しのテーマのようです。http://www.findjar.comには、このクラスを持っていると称する多くのjarがリストされていますが、そうではありません。
OK、jasper-compiler-jdt-5.5.23.jarで見つかりました