草庐IT

b-Class-Interface

全部标签

java - Java 中的 "runtime class"是什么?

我试图理解Object.getClass()方法的作用。documentation说它“返回对象的运行时类”。这种解释并不能帮助我理解这个词。有人简单描述了什么是“运行时类”以及getClass()的作用吗? 最佳答案 只需将其理解为“一个拥有该对象类型所有元数据的对象”即可。在该对象中,您可以找到类中声明的方法、字段、类型层次结构等。这些信息通常由使用反射来检查对象/类型或运行方法的代码使用,而无需在它们本身被编码时定义和编译类。“运行时”可能会被强调,因为类定义可能会随着时间而改变,或者对象可能被声明为父类(superclass

java - Consumer<T> 映射到 HashMap 中的 Class<T>

我想创建一个IdentityHashMap,Consumer>.基本上,我想用一个方法映射一个类型,说明如何处理这个类型。我想动态地能够用对象X说,执行Y。我能做到privateIdentityHashMap,Consumer>interceptor=newIdentityHashMap();但这很糟糕,因为我必须在使用它时将对象转换到lamba中。例子:interceptor.put(Train.class,train->{System.out.println(((Train)train).getSpeed());});我想做的是privateIdentityHashMap,Cons

c# - C# 接口(interface)中不允许的字段

Java和C#语言存在很多偏差,我观察到的偏差之一是我们不能在接口(interface)中添加变量常量。作为Java背景,我在尝试此操作时看到编译错误时感到困惑。有没有人解释为什么会这样? 最佳答案 字段是类的实现细节,不应在其接口(interface)中公开。接口(interface)是一种抽象出类的实现细节的方法。这两个概念看起来很矛盾,实际上并不契合。您可以改为在接口(interface)中声明属性。更新(在意识到问题是关于常量,而不是变量字段之后):我认为(纯粹是我个人的猜测)Java决定允许这样的构造,因为它当时没有enu

Java:来自 class.getResource( ... ) 的 NullPointerException

我正在编写一个小型应用程序,当我尝试创建一个ImageIcon时,我总是遇到异常。异常是由这行代码引起的:prayerLevel.setIcon(newImageIcon(getClass().getResource("/icons/icon_prayer.png")));现在在我的程序中,文件夹/icons/确实存在。我不知道这是否有所不同,但类文件在一个包中,而图标文件夹在项目文件夹中(当您看到bin和src文件夹时)。我环顾四周,找不到可以帮助我解决问题的解决方案。也许你们中的任何人都可以提供帮助?编辑:有人询问我的文件夹层次结构:我知道类文件与图标不在同一个文件夹中,但我制作的

java - 你能用Java实例化一个接口(interface)吗

这个问题在这里已经有了答案:CanwecreateaninstanceofaninterfaceinJava?[duplicate](7个答案)关闭9年前。你能在Java中实例化一个接口(interface)吗?我知道快速的回答是“不”。但是有些事情我不太了解。这里发生了什么?SharedPreferences是一个公共(public)接口(interface)。然而,我们并没有像我在书中读到的那样使用这个接口(interface),我们没有创建一个类并实现SharedPreferences。相反,我们像这样使用这个API:SharedPreferencespref=Context.g

java - Autowiring Spring 父类(super class)

为什么Spring在Autowiring期间自动选择父类(superclass)类型?例如,如果我有@ComponentpublicclassFoo{}@ComponentpublicclassBarextendsFoo{}有人Autowiring@AutowiredprivateFoofoo;为什么Spring总是选择父类(superclass)型Foo?这不应该是一个“不明确的”映射(并导致Spring抛出错误)吗?从技术上讲,您不是有两个Foo候选人吗?(例如,当从Foo中删除@Component时,Bar会自动选取...) 最佳答案

java - 什么是Interface.super

我最近在java中使用了默认方法。在它的实现中我发现了publicinterfaceDefaultMethod{defaultStringshowMyName(Stringname){return"Hai"+name;}}publicclassDefaultMethodMainImplimplementsDefaultMethod{@OverridepublicStringshowMyName(Stringname){returnDefaultMethod.super.showMyName(name);}}我的问题是在DefaultMethod.super中,super将调用它除了Ob

java - 无法从 START_OBJECT token 中反序列化 java.lang.Class 的实例

我无法正确理解运行这段代码时遇到的错误:InputStreamis=this.getClass().getClassLoader().getResourceAsStream(filename);StringjsonTxt=IOUtils.toString(is);JSONArrayjson=(JSONArray)JSONSerializer.toJSON(jsonTxt);JSONObjectmetadatacontent=json.getJSONObject(0);ObjectMappermapper=newObjectMapper();mapper.readValue(metada

java - JPA 类格式错误 "Absent Code attribute in method that is not native or abstract in class file javax/persistence/Persistence"

当我尝试调用100%工作代码时,我从eclipse中得到错误。例如,它在我的netbeans中工作,但不是这个eclipse项目。这个错误是荒谬的,我几乎可以肯定它是由我正在使用的OPENJPA的一些Maven依赖性引起的。任何指针?Mapproperties=newHashMap();properties.put(PersistenceUnitProperties.JDBC_PASSWORD,"");properties.put(PersistenceUnitProperties.JDBC_USER,"root");properties.put(PersistenceUnitProp

java - GWT.create(Class<?>) 与 GIN?

看起来GWT有自己内置的DI机制(GWT.create(Class))。除此之外,GIN还提供什么好处?您应该将它们结合使用,还是相互排斥?我喜欢Guice,所以我很想使用GIN,但如果GWT已经可以开箱即用地做同样的事情,我不想再介绍它。 最佳答案 Gin和GWT.create有一些不同-Gin更多的是通过@Inject注释提供依赖,无论是在字段、setter还是构造函数上,而GWT.create专门用于获取实现。Gin将使用您提供的任何构造函数,但您必须特别提供替换类型,而GWT.create将仅使用默认构造函数,并且您的“重新