Java,我定义了一个接口MyInterfaceName[MyInterfaceName.class]。这个. class文件在jarFile中可用。使用Java反射,我试图在这个特定的类中使用方法class.isInterface()
,但它返回false。
同样,基于以下参考文献,
http://tutorials.jenkov.com/java-reflection/classes.html#modifiers http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Modifier.html#isInterface(内景)
修改值链接
我尝试了以下代码:
int modifierValue = MyInterfaceName.class.getModifiers();
System.out.println(modifierValue)
boolean interfaceFound = Modifier.isInterface(modifierValue);
System.out.println(interfaceFound)
此interfaceFind
仅返回false
。此外,修改值
返回17
,它不适合我提供的ModifierValueLink中的任何位置。
但是MyInterfaceName是根据java标准定义的接口。我不明白为什么它不起作用。
请帮忙。谢谢
最终得到:)
url = // Your jar file path
JarFile jarFile = new JarFile(url);
Enumeration e = jarFile.entries();
URLClassLoader urlClassLoader;
URL[] urls = {
new URL("jar:file:" + url +"!/")
};
urlClassLoader = URLClassLoader.newInstance(urls);
while (e.hasMoreElements()) {
JarEntry je = (JarEntry) e.nextElement();
if(je.isDirectory() || !je.getName().endsWith(".class")){
continue;
}
String className = je.getName().substring(0,je.getName().length()-6);
className = className.replace('/', '.');
Class myClass = urlClassLoader.loadClass(className);
if(myClass.isInterface()){
System.out.println("Interface found - Name: "+ myClass);
}
}
感谢所有回答:)的人,以及lol的downvoter(s)。
我的新答案是在这个链接上。http://java2s.com/Tutorials/Java/java.lang.reflect/Modifier/Java_Modifier_isInterface_int_mod_.htm
我已经在链接上实现了给定的示例;
public interface MyInterfaceName {
public int a = 0;
public int b = 0;
}
import java.lang.reflect.Modifier;
public class Main {
public static void main(String[] args) {
Class<?> cls = MyInterfaceName.class;
int modifier = cls.getModifiers();
System.out.println(Modifier.isInterface(modifier));
}
}
这是真的。corect的用法应该是在链接处。
我写了自己的类加载器,它与类一起工作,实现了接口插件。但是我不能将类转换为插件。怎么了? 错误:(18,47)java:不兼容的类型:java。lang.类无法转换为插件 我补充说,这是我的SimpleClassLoader类的主要部分,它扩展了ClassLoader。
我想在Android应用程序发送包含 /api/Profile/Favorite的超文本传输协议请求时返回存根响应?value={"ID": 11821} 所以这是我的测试(使用WireMock框架) 但是当我开始测试方法测试发送请求浓缩咖啡时,我得到了正式服的生产响应。 这里请求来自Android设备: 这里回应: 正如你所看到的,我没有得到存根响应:{This_is_mock_response
我有几个具体的使用以下类型的接口 具体的课程如下 现在我怎么能写工厂类,它重新运行一个通用接口,比如IActive。 谢谢
问题内容: 当我尝试编译时,它给了我错误 我应该如何解决这个问题? 问题答案: 该错误是由于以下事实导致的:调用将是不明确的- 应该调用两种方法中的哪一种?从JLS§8.4.2开始: 在类中声明两个具有重写等效签名的方法是编译时错误。 方法的返回类型不是其签名的一部分,因此根据上述说明,您将收到错误。 假设您不能简单地重命名冲突的方法,在这种情况下就不能使用继承,并且需要使用诸如compositi
问题内容: 当用Java编程时,我几乎总是出于习惯,编写如下代码: 大多数时候甚至都没有考虑它。现在,问题是:我应该 始终 将接口指定为返回类型吗?还是建议使用接口的实际实现,如果是,在什么情况下使用? 显然,使用该接口有很多优点(这就是为什么它存在的原因)。在大多数情况下,库函数使用哪种具体实现并不重要。但也许在某些情况下确实很重要。例如,如果我知道我将主要随机访问列表中的数据,那将是一个坏习惯
我已经创建了一个需要重用的对象池。每次试图返回对象时,我都会得到一个错误:“返回的对象当前不属于此池” 我得到这个错误: