mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
Java: Improved completion for arguments of reflection calls getField() and getMethod() - extract the actual type from Class.forName and from generic type parameter to provide the code assistance (IDEA-167250)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a,b,c,d;
|
||||
a = Class.forName("Test");
|
||||
b = a;
|
||||
c = b;
|
||||
d = c;
|
||||
d.getField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a,b,c,d;
|
||||
a = Class.forName("Test");
|
||||
b = a;
|
||||
c = b;
|
||||
d = c;
|
||||
d.getField("num2");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a,b,c,d;
|
||||
d = Class.forName("Test");
|
||||
a = d;
|
||||
b = a;
|
||||
c = b;
|
||||
d = c;
|
||||
d.getField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a,b,c,d;
|
||||
d = Class.forName("Test");
|
||||
a = d;
|
||||
b = a;
|
||||
c = b;
|
||||
d = c;
|
||||
d.getField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
class Main {
|
||||
void foo() throws ReflectiveOperationException {
|
||||
bar().getField("<caret>");
|
||||
}
|
||||
|
||||
Class<Test> bar() throws ClassNotFoundException { return (Class<Test>) Class.forName("Test"); }
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public void method(){}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
class Main {
|
||||
void foo() throws ReflectiveOperationException {
|
||||
bar().getField("num");
|
||||
}
|
||||
|
||||
Class<Test> bar() throws ClassNotFoundException { return (Class<Test>) Class.forName("Test"); }
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public void method(){}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getDeclaredField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public int num;
|
||||
int num3;
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public int num2;
|
||||
int num4;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getDeclaredField("num3");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public int num;
|
||||
int num3;
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public int num2;
|
||||
int num4;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getDeclaredMethod("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public void method(){}
|
||||
void method3(){}
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public void method2(){}
|
||||
void method4(){}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getDeclaredMethod("method3");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public void method(){}
|
||||
void method3(){}
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public void method2(){}
|
||||
void method4(){}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public int num;
|
||||
void int num3;
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public int num2;
|
||||
int num4;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getField("num2");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public int num;
|
||||
void int num3;
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public int num2;
|
||||
int num4;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getMethod("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public void method(){}
|
||||
void method3(){}
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public void method2(){}
|
||||
void method4(){}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getMethod("method2");
|
||||
}
|
||||
}
|
||||
|
||||
class Test extends Parent {
|
||||
public void method(){}
|
||||
void method3(){}
|
||||
}
|
||||
|
||||
class Parent {
|
||||
public void method2(){}
|
||||
void method4(){}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a = Class.forName("Test");
|
||||
Class<?> b = a;
|
||||
Class<?> c = b;
|
||||
Class<?> d = c;
|
||||
Class<?> e = d;
|
||||
Class<?> f = e;
|
||||
Class<?> g = f;
|
||||
Class<?> h = g;
|
||||
Class<?> i = h;
|
||||
Class<?> j = i;
|
||||
Class<?> k = j;
|
||||
k.getField("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> a = Class.forName("Test");
|
||||
Class<?> b = a;
|
||||
Class<?> c = b;
|
||||
Class<?> d = c;
|
||||
Class<?> e = d;
|
||||
Class<?> f = e;
|
||||
Class<?> g = f;
|
||||
Class<?> h = g;
|
||||
Class<?> i = h;
|
||||
Class<?> j = i;
|
||||
Class<?> k = j;
|
||||
k.getField("num2");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public int num;
|
||||
public int num2;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> c = Test.class;
|
||||
c.getMethod("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
public void method2(int n){}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<?> c = Test.class;
|
||||
c.getMethod("method2", int.class);
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
public void method2(int n){}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<Test> c = bar();
|
||||
c.getMethod("<caret>");
|
||||
}
|
||||
|
||||
Class bar() { return Test.class; }
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
public void method2(int n){}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Class<Test> c = bar();
|
||||
c.getMethod("method2", int.class);
|
||||
}
|
||||
|
||||
Class bar() { return Test.class; }
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
public void method2(int n){}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getMethod("<caret>");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
class Main {
|
||||
void foo() {
|
||||
Test.class.getMethod("method");
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
public void method(){}
|
||||
}
|
||||
Reference in New Issue
Block a user