草庐IT

myObject

全部标签

Java反射题

我正在开发一个项目,该项目使用反射来获取正在运行的Java应用程序的字段。我设法获取了这些字段,但我无法读取或写入它们。这是我在网上找到的一个例子:ClassaClass=MyObject.classFieldfield=aClass.getField("someField");MyObjectobjectInstance=newMyObject();Objectvalue=field.get(objectInstance);field.set(objetInstance,value);问题是我使用了正在运行的jar文件中的类,而我尝试操作的类是从类加载器中获得的。因此,我只有“.cl

Java,将Class的实例转换为HashMap

如果我有这样的类(class):classMyObject{publicintmyInt;publicStringmyString;}是否可以在不实现转换代码的情况下将此类的实例转换为HashMap?MyObjectobj=newMyObject();obj.myInt=1;obj.myString="string";HashMaphs=convert(obj);hs.getInt("myInt");//returns1hs.getString("myString");//returns"string"Java有没有提供那种方案,还是需要自己实现convert?我的类(class)有5

Java GC - 有没有办法确定收集了哪些对象

我正在尝试使用-verbosegc标志来监控我的应用程序中的gcActivity。我可以看到有完整和次要的集合,但是有没有办法确定(订阅事件/vm标志/等等)实际收集了哪些对象?谢谢! 最佳答案 有关内存中对象的一般信息,我建议您查看jvisualvm(它位于JDK的bin文件夹中)。它包含许多有关VM在您的程序运行时正在执行的操作的有用信息,包括有关各种对象和内存状态的信息。如果您想要更具体的内容,可以使用Wea​​kReferences和ReferenceQueues。如果您只对几种类型的对象感兴趣,则此选项可能可行。您可以创建

来自多个字段的 Java hashCode

给定一个这样的类:classMyObject{privateStringid1;privateStringid2;@Overridepublicbooleanequals(Objecto){if(o==this)returntrue;if(!(oinstanceofMyObject)){returnfalse;}MyObjectother=(MyObject)o;returnid1.equals(other.id1)||id2.equals(other.id2);}}请注意,相等性不取决于两个字段是否匹配,任何一个字段都有效。什么是适合此类的hashCode实现?

java - Java 中的简单对象验证

我想知道,对象验证的最佳实践是什么。是否有任何额外的论点反对案例一或案例二?还有别的办法吗?我不搜索任何验证库,我只想做简单的验证。案例一classA{publicvoiddoSomething(MyObjecto){try{validate(o);doSomethingUseful(o);}catch(ValidationExceptione){Logger.getLogger().warn(e);}}privatevoidvalidate(MyObjecto)throwsValidationException{if(o.getXYZ()==null)thrownewValidati

java - 成员应该在类中初始化还是在构造函数中初始化?

初始化变量,特别是类级别的对象引用是一个好习惯吗?请考虑以下示例;publicclassMyClass{privatestaticMyObjectmyObject;publicstaticvoidmain(String[]args){myObject=newMyObject();}}或publicclassMyClass{privateMyObjectmyObject=newMyObject();publicstaticvoidmain(String[]args){//Othercode}}哪种方式最好?请指导我了解两者的优缺点。问候。 最佳答案

c# - 链式 IF 结构

想象一下这种情况,我有一个需要检查属性的对象。但是,该对象当前可以具有空值。如何在一个“if”条件下检查这两个条件?目前,我必须做这样的事情:if(myObject!=null){if(myObject.Id!=pId){myObject.Id=pId;myObject.Order=pOrder;}}我想要这样的东西:if(myObject!=null&&myObject.Id!=pId)我只想在第一个条件为真时评估第二个条件。 最佳答案 if(myObject!=null&&myObject.Id!=pId){myObject.I

java - 使用 "id"字段更新列表的子部分

我正在尝试学习如何使用lambda函数来编写更流畅的代码,但努力使这项工作成功。我有两个列表。“旧”列表总是比“更新列表”更短或相同。我想从“更新列表”中取出对象并覆盖较短的“旧列表”中的“陈旧对象”。列表中的每个对象都有一个唯一的字段。例如,这有点像用新版本更新图书馆中的书籍。UUID(书名+作者)保持不变,但新对象用新书/对象替换了书架上的旧对象。我知道我可以做“很长的路”并制作一个HashMap然后取新的List并做同样的事情。即有HashMap和HashMap,然后使用伪“如果更新的对象具有具有相同键的条目,则用更新的值覆盖该值”...但是……是否有一种“更好”的简短方法来使用

java - Jersey :@PathParam 带逗号到 List<MyObject>

我想用这种模式调用我的网络服务:/resource/1,2,3在我的类(class)中,我想将我的参数绑定(bind)到一个对象列表@Path("/resource")publicclassAppWS{@GET@Path("/{params}")publicResponseget(@PathParam("params")Listparams){returnResponse.status(200).entity("output").build();}}用一个简单的对象:publicclassMyObject{Integervalue;publicMyObject(Integervalue

java - 避免Java反序列化中的重复对象

我有两个列表(list1和list2),其中包含对某些对象的引用,其中某些列表条目可能指向同一个对象。然后,出于各种原因,我将这些列表序列化为两个单独的文件。最后,当我反序列化列表时,我想确保我不会重新创建超出需要的对象。换句话说,List1的某些条目仍然有可能指向与List2中的某些条目相同的对象。MyObjectobj=newMyObject();Listlist1=newArrayList();Listlist2=newArrayList();list1.add(obj);list2.add(obj);//serializetofile1.serObjectOutputStrea