我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?
我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.
如果你这样做是这样的:
IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)
你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.
另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?
我有以下课程
import java.util.ArrayList;
import java.util.List;
public class TestStaticArrayList {
public static List<String> numberList = new ArrayList<String>();
public static List<String> getArrayValues(){
return numberList;
}
public static void populateArray() {
numberList.add("1");
numberList.add("2");
numberList.add("3");
}
}
Run Code Online (Sandbox Code Playgroud)
上面类中的静态ArrayList是从下面的类调用动态填充的.
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class TestStaticInvokationClass {
public static void main(String[] args) throws Exception {
Class staticKlass = Class
.forName("com.sathish.test.TestStaticArrayList");
staticKlass.getMethod("populateArray", null).invoke(null, null);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图访问下面的类中的静态ArrayList.但它总是为空.
public class StaticArrayListAccessTest {
public static void main(String[] args) throws Exception {
System.out.println(TestStaticArrayList.getArrayValues());
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用
static …Run Code Online (Sandbox Code Playgroud)