我有一个Java集合: Collection<CustomObject> list = new ArrayList<CustomObject>(); CustomObject在显示列表之前有一个id字段,我想用这个id对这个集合进行sorting。 有没有办法做到这一点?
下面的代码(在android中运行)总是会在第三行给我一个ClassCastException: final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1)); String[] v3 = (String[])v2.toArray(); 它也发生在v2是Object [0]的时候,当它有string的时候。 任何想法为什么?
我有一个类使用XML和reflection来返回Object到另一个类。 通常情况下,这些对象是外部对象的子字段,但偶尔也是我想要生成的东西。 我已经尝试过这样的事情,但无济于事。 我相信那是因为Java不允许你访问private方法进行reflection。 Element node = outerNode.item(0); String methodName = node.getAttribute("method"); String objectName = node.getAttribute("object"); if ("SomeObject".equals(objectName)) object = someObject; else object = this; method = object.getClass().getMethod(methodName, (Class[]) null); 如果提供的方法是private ,则会失败,并显示NoSuchMethodException 。 我可以通过public这个方法来解决这个问题,或者让另一个类从中派生出来。 长话短说,我只是想知道是否有办法通过reflection访问private方法。
我目前正在使用 onTouchEvent(MotionEvent event){ } 检测用户何时按下我的glSurfaceView有没有办法检测什么时候长按。 我猜如果我在开发文档中找不到太多,那么这将是某种方法的工作。 就像注册ACTION_DOWN和看ACTION_UP之前的时间一样。 如何检测使用opengl-es的长时间按下android?
我有一个包含国家名称的List<String>对象。 我怎样才能按字母顺序排列这个列表?
有人能指出我如何打开默认的网页浏览器的正确方向,并将页面设置为“www.example.com”谢谢
Java的File.renameTo()是有问题的,特别是在Windows上,似乎。 正如API文档所述 , 这种方法的许多方面的行为本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是primefaces的,并且如果具有目标抽象path名的文件可能不成功已经存在。 应始终检查返回值,以确保重命名操作成功。 就我而言,作为升级过程的一部分,我需要移动(重命名)一个可能包含千兆字节数据的目录(大量子目录和不同大小的文件)。 此举总是在同一分区/驱动器内完成的,因此不需要物理移动磁盘上的所有文件。 不应该有任何文件locking目录的内容被移动,但仍然经常renameTo()无法完成其工作,并返回false。 (我只是猜测,也许某些文件locking在Windows上有些任意地过期。) 目前我有一个使用复制和删除的回退方法,但这很糟糕,因为它可能需要很长的时间,这取决于文件夹的大小。 我还在考虑简单地logging一下这样一个事实,即用户可以手动移动文件夹以避免等待几个小时。 但是正确的做法显然是自动而快速的。 所以我的问题是, 你是否知道另一种可靠的方法来在Windows上快速移动/重命名Java ,无论是使用普通的JDK还是外部库。 或者,如果你知道一个简单的方法来检测和释放给定文件夹及其所有内容 (可能是成千上万个文件)的任何文件locking,那也可以。 编辑 :在这个特殊的情况下,似乎我们通过考虑几个更多的东西而使用了renameTo() 。 看到这个答案 。
最近我和一位同事进行了一次谈话,谈谈在Java中将List转换为Map的最佳方法是什么,以及这样做有什么特别的好处。 我想知道最佳的转换方法,如果有人能指导我,我会很感激。 这是一个好方法: List<Object[]> results; Map<Integer, String> resultsMap = new HashMap<Integer, String>(); for (Object[] o : results) { resultsMap.put((Integer) o[0], (String) o[1]); }
我安装了Android Studio,但是当我编辑我的布局文件时,我找不到实时预览! 我只是看到一个XML文件。 如何在graphics视图中看到我的布局? 更新:这是在我的情况下是这样的:
怎样才能使Java类不可变,什么是不变性的需要,使用它有什么好处?