草庐IT

b-Class-Interface

全部标签

Java寻找默认网关的网络接口(interface)

在Java中,我想找到与使用的接口(interface)对应的java.net.NetworkInterface到达默认网关。接口(interface)的名称等无法提前知道。换句话说,如果下面是我的路由表,我想要与“bond0”对应的接口(interface):$netstat-rKernelIProutingtableDestinationGatewayGenmaskFlagsMSSWindowirttIface10.10.10.0*255.255.255.0U000bond010.10.11.0*255.255.255.0U000eth210.10.11.0*255.255.255

java - 具有多个有界类型和未经检查的转换的 Class.asSubclass

我有一个用类型&Runnable>泛化的类.我有一个成员变量Classbar我通过类名设置:t=(Class)Class.forName(name).这给了我一个未经检查的Actor警告。通常,使用asSubclass可以在类似情况下使用,但由于T有多个边界,我无法在没有收到编译器警告的情况下使用它://Thisistypesafe,butIstillgetanuncheckedcastwarningt=(Class)Class.forName(className).asSubclass(Enum.class).asSubclass(Runnable.class);我可以不使用@Sup

java - Comparable 接口(interface)前无接口(interface)词

这是细节,但我想知道为什么会这样。示例代码:Classklasa=Enum.class;for(Typet:klasa.getGenericInterfaces())System.out.println(t);程序输出:java.lang.Comparableinterfacejava.io.Serializable为什么在输出java.lang.Comparable之前没有接口(interface)词.是界面,是吗?在我看来输出应该是:**interface**java.lang.Comparableinterfacejava.io.Serializable比较特殊处理?

java - Class T 如何以及何时从 Integer 更改为 String 而不是显示错误/异常

我所做的只是了解泛型在Java中的工作原理。我写了下面的代码:publicclassTest{publicstaticvoidmain(String...args)throwsException{Fooo=newFoo(newInteger(5));o.fun();}}classFoo{privateTt;publicFoo(Tt)throwsInstantiationException,IllegalAccessException{System.out.println("1.Tis"+t.getClass());this.t=(T)"test";System.out.println(

java - ProGuard:保留用@Keep 注释的接口(interface)的实现

我想用自定义的@Keep注解来注解我的应用程序中的一些接口(interface),并配置ProGuard以便不混淆带注释的接口(interface)及其方法,在实现类时不混淆那些接口(interface)方法的实现。我试过类似的东西#Keptinterfacesandalltheirmethods-keepinterface@com.foo.bar.annotation.Keep*{;}#Classesimplementingkeptinterfaces-keepclass*implements@com.foo.bar.annotation.Keep*但显然语法是无效的。我尝试了其他方

java - 为什么在静态上下文中使用实例方法时 javac 会发出 "error: method in class cannot be applied to given types"?

考虑以下(无效的)Java程序:publicclassTest{publicstaticvoidmain(String[]args){int[]ints={1,2,3,4,5};print(ints);}publicvoidprint(int...ints){for(inti:ints){System.out.print(i);}}}我希望出现与此类似的错误:Cannotmakeastaticreferencetothenon-staticmethodprint(int[])fromthetypeTestatTest.main(Test.java:5)相反,javac发出:Test.j

java - 在 Java 中,变量应该总是用接口(interface)声明吗?

人们经常看到这样的建议,即变量应该用某个接口(interface)声明,而不是实现类。例如:Listlist=newArrayList();但是,假设我将此列表用于一种算法,该算法确实依赖于ArrayList的O(1)随机访问(例如Fisher-Yates改组)。在那种情况下,ArrayList对我来说代表的关键抽象是它类似数组的性质,而不仅仅是它的列表性质。换句话说,如果有人出现并将list更改为LinkedList,这将是有问题的,即使代码可以编译。在这种情况下,是否可以让声明使用实现类型?例如:ArrayListlist=newArrayList();

java - 在不加载类的情况下近似 class.getSimpleName() 的最佳方法是什么?

给定一个完全限定的类名,可以用Class.forName()加载,有没有办法将名称转换为加载类和调用getSimpleName()的结果没有实际尝试加载类?我需要这种能力来进行反射(reflection)。 最佳答案 我要说的是,您不能仅根据名称来做到这一点。您可以尝试在.和$上拆分,但此示例代码表明简单名称的开始位置并不总是很明显:classIdeone{privatestaticclassBar{};publicstaticvoidmain(String[]args)throwsjava.lang.Exception{class

Java类编译时错误 "Cannot access interface"

我有一个接口(interface)stores,它有两个方法getName()和getAddres(),我有一个实现Stores的类Market这是我的代码:publicinterfaceStores{publicStringgetName();publicStringgetAddress();}具体类:publicclassMarketimplementsStores{privateStringname;privateStringaddress;privateintsize;publicMarket(Stringname,Stringaddress,intsize){this.nam

java.lang.NoClassDefFoundError : Could not initialize class when launching spark job via spark-submit in scala code 错误

我有一个代码,如下所示objectErrorTest{caseclassAPIResults(status:String,col_1:Long,col_2:Double,...)deffuncA(rows:ArrayBuffer[Row])(implicitdefaultFormats:DefaultFormats):ArrayBuffer[APIResults]={//callsomeAPIanggetresultsandreturnAPIResults...}//MARK:loadpropertiesvalprops=loadProperties()privatedefloadPr