草庐IT

b-Class-Interface

全部标签

Java 泛型枚举子类型化接口(interface)

给定以下设置:publicclassTestType{publicstaticvoidmain(String[]args){Listlist=newArrayList();accept(list);//Doesnotcompile}staticvoidaccept(Iterablevalues){for(MyInterfacevalue:values){value.doStuff();}}}interfaceMyInterface{TdoStuff();}enumConstantsimplementsMyInterface{ONE,TWO,THREE;@OverridepublicIn

Java 8 : replace anonymous class with lambda

我在替换这个特定示例时遇到问题:Consumerconsumer=newDefaultConsumer(channel){@OverridepublicvoidhandleDelivery(StringconsumerTag,Envelopeenvelope,AMQP.BasicPropertiesproperties,byte[]body)throwsIOException{Stringmessage=newString(body,"UTF-8");System.out.println("[x]Received'"+message+"'");}};是否可以用lambda替换它,因为它

java - 当我们使用new运算符创建一个对象时,它是否使用实际的.class文件在java中创建一个对象

我对某个主题感到困惑,无法在网上找到它。据我了解,当程序启动时,类加载器加载.class文件并将它们作为类型为Class的对象存储在内存中。我的问题是当我们使用:Testtest=newTest();新对象是使用.class文件创建的,还是使用内存中已有的Class对象创建的? 最佳答案 一旦一个类被加载到JVM中,同一个类将不会被同一个类加载器再次加载。新实例将从内存中的类对象创建(对于相同的类加载器)。高级步骤(从https://www.ibm.com/developerworks/java/tutorials/j-classl

java - 在 Java 中向接口(interface)添加不变量

我一直在考虑创建一个Java框架,允许程序员在接口(interface)上指定不变量(前置条件和后置条件)。目的是使代码更健壮,并减少需要为同一接口(interface)的不同实现编写的单元测试的数量。我设想创建一些方法来注释带有程序员也会编写的不变量的方法。例如。interfaceSort{int[]sort(int[]nums);}将用注解装饰,以确保任何实现都返回一个排序列表。此注释将链接到可以在编译时针对任何实现运行的单元测试。这是一个疯狂的想法还是对更广泛的编程社区有用? 最佳答案 这听起来可能与JML有关和ESC/Jav

java - 如何在运行时将 rhino/javascript 文件编译为 java 的 .class 字节码

我正在制作fallingsandgame在java。我希望用户能够使用更简单的语言为其编写自己的引擎。落沙游戏可能会占用大量CPU,因此我想让引擎尽可能快地运行,而不必手动编译。我需要知道如何在运行时将rhinojavascript文件编译为.class文件以供使用。我一直在寻找一种方法,但除了使用我不希望用户必须执行的命令行手动编译它之外找不到任何其他方法。 最佳答案 这里有一个简短的教程:Scripting:CompilingScriptsinJava 关于java-如何在运行时将r

java - 具有方法参数父类(super class)的接口(interface)实现

作为主题中一般问题的一个实际例子,我想实现containsAllSet中的方法接口(interface)publicbooleancontainsAll(Iterablec){/*...*/}我认为这应该被允许,因为Collection是Iterable意思是这样的containsAll将涵盖接口(interface)要求。同样,更一般地说,能够实现带有参数父类(superclass)的接口(interface)似乎应该可行。但是,Eclipse说不行(还没有尝试直接使用javac)——有人可以解释一下原因吗?我敢肯定规范中有一些东西让它成为现在的样子,但我也想了解需求的动机。还是我错

java - 将 .class 文件添加到 Eclipse 项目

这完全是个新手问题,但我想不通,所以我想在这里问一下,看看会发生什么。问题是:对于我的java编程类(class),我们应该下载一个由我们的教师创建的.class文件,其中包含一个定制的类,其中包含我们应该在作业中使用的方法。我已经知道在我的实际程序中创建类的所有代码,但我不知道将.class文件放在哪个目录中。我已经尝试了项目目录中的src和bin文件夹,甚至将其放置直接进入项目目录,但似乎没有任何效果。我的导师说只要将它放在与我的java程序相同的目录中,但他们使用的是jGRASP。我做错了什么? 最佳答案 您可以将类文件放在任

java - 语法 `new Class[]{}` 是如何工作的?

在这个beginnersguidetoDependencyInjection的第一个代码示例中我遇到了一些我不确定自己是否完全理解的新结构://InstantiateCabAgency,andsatisfyitsdependencyonanairlineagency.Constructorconstructor=cabAgencyClass.getConstructor(newClass[]{AirlineAgency.class});cabAgency=(CabAgency)constructor.newInstance(newObject[]{airlineAgency});new

java - 与 Java 中的同步块(synchronized block)相比,新的 Lock 接口(interface)有什么优势?

与Java中的同步块(synchronizedblock)相比,新的Lock接口(interface)有何优势?您需要实现一个高性能缓存,允许多个读取器但单个写入器保持完整性,您将如何实现它? 最佳答案 锁的优点是让他们公平是可能的可以让线程在等待Lock对象时响应中断。可以尝试获取锁,但如果无法获取锁,则立即或超时后返回可以在不同的范围内以不同的顺序获取和释放锁请注意,这在javadocofLock中有解释。及其子类。可以使用ConcurrentMap实现高性能缓存。 关于java-与

java - 编程到接口(interface) - 避免以后的转换

因此,据我所知,应该始终针对接口(interface)进行编程,如:Listlist=newLinkedList();所以,稍后在我的程序中我有:publicListgetIntegers(){returnlist;}publicvoidprocessIntegers(){//IneedanarraylisthereArrayListlist=(ArrayList)getIntegers();//canIdothisbetter,withoutacast?}我可以在这里遵循更好的模式或以某种方式避免转换吗?在这种情况下,转换看起来非常丑陋。谢谢。 最佳答案