草庐IT

values_list

全部标签

java - 为什么有人用List基类实例化一个新的ArrayList?

我经常遇到人们实例化一个新的ArrayList并将其分配给List接口(interface)的代码,如下所示:Listnames=newArrayList();这种方法背后的原因是什么? 最佳答案 将您的代码与接口(interface)的特定实现分离。这也可以帮助您转移到List的另一个实现future的界面。例如——你有Listnames=newArrayList();稍后你决定你应该使用List的一些其他实现。界面,说LinkedList所以你只需将其更改为Listnames=newLinkedList();没有任何问题。

java - 我应该返回 List 还是 ArrayList?

我发现自己同意返回一个接口(interface)而不是一个具体的类。原因很简单,我要松耦合。但是会有其他影响或权衡吗? 最佳答案 最好返回最适合您的接口(interface)的通用类型。如果出于某些原因ArrayList本质上适合您要返回的数据,那么您应该使用它。通常List没问题,但如果返回值本质上是无序的,您也可以考虑使用Collection: 关于java-我应该返回List还是ArrayList?,我们在StackOverflow上找到一个类似的问题:

java: 当 SomeClass 实现 SomeInterface 时从 List<SomeClass> 转换为 List<SomeInterface>

我脑抽筋了:我有一个publicinterfaceSomeInterface和一个staticprivateclassSomeClass并试图返回List从我的一种方法,但我得到了错误(在下面的returnlist;行):Typemismatch:cannotconvertfromListtoList如何在不创建新列表的情况下解决此问题?澄清:我不想将列表创建为List(也许是显而易见的解决方案)因为私下里我想维护一个List允许将来访问SomeClass的方法,而不是公共(public)接口(interface)中的方法。这在下面的示例中没有显示,但在我的实际程序中我需要它。impo

java - 有人可以向我解释在 Java 中传递 "value"而不是传递 "reference"的原因是什么吗?

我是Java的新手(多年来一直在编写其他东西),除非我遗漏了什么(我很高兴在这里错了),否则以下是一个致命的缺陷......Stringfoo=newString();thisDoesntWork(foo);System.out.println(foo);//thisprintsnothingpublicstaticvoidthisDoesntWork(Stringfoo){foo="howdy";}现在,我很清楚在Java中所有东西都是通过“值”而不是“引用”传递的(措辞相当糟糕)的概念,但是String是一个对象并且有各种各样的花里胡哨,所以,人们会期望,与int不同,用户将能够对

c# - null 到底有什么值(value)?

(我知道null是什么以及它的用途)问题:好的,假设我们用任何语言引用一个对象。计算机在内存中留出一点32位(或其他大小,取决于计算机的设计)空间供该引用。该内存可以分配给表示对象在内存中的位置的值。但是当我将引用设置为null时,它到底有什么值(value)呢?(引用集中的各个位是什么)这些位是否刚刚清零?但这不也是内存中的一个位置吗?计算机如何判断引用包含null而不是对对象的引用?我知道这不是一个“重要”的问题,但我很好奇它是如何工作的。谢谢大家:D 最佳答案 答案分为两部分:值为零(即值中的所有位均为零)零永远不会被视为有效

Java:如何将 List<?> 转换为 Map<String,?>

这个问题在这里已经有了答案:HowtoconvertListtoMap?(20个答案)关闭7年前。我想找到一种方法来获取下面的对象特定例程并将其抽象为一个方法,您可以通过该方法传递类、列表和字段名以取回Map。如果我能得到关于使用的模式或等的一般指示,这可以让我在正确的方向上开始。Mapmapped_roles=newHashMap();Listp_roles=(List)c.list();for(Roleel:p_roles){mapped_roles.put(el.getName(),el);}为了这个?(伪代码)MapMapMe(Classclz,Collectionlist,S

java - List<List<?>> 和 List<List> 是 java 中不兼容的类型

这个问题在这里已经有了答案:CannotconvertfromListtoList>(3个答案)关闭7年前。我没有得到这段代码以任何方式编译:Lista=newArrayList();List>b=newArrayList();a=b;//incompatibletypesb=a;//incompatibletypesjava好像没有考虑List和List在涉及泛型时是同一类型。这是为什么呢?有什么好的出路吗?上下文有一个具有以下签名的库函数:publicSet>getSubTypesOf(finalClasstype).这适用于作为参数传递的简单类型,但在泛型的情况下,结果未使用通配

java - JXL 解决#VALUE 问题

我想使用AVERAGE函数,但是当我有一个恰好是标签的引用单元格时,我得到#VALUE作为输出。我附上了我正在尝试做的示例代码:Stringfilename="C:\\input.xls";WorkbookSettingsws=newWorkbookSettings();ws.setLocale(newLocale("en","EN"));WritableWorkbookworkbook=Workbook.createWorkbook(newFile(filename),ws);WritableSheets1=workbook.createSheet("Output",0);s1.ad

java - SpringMVC : @PathVariable value containing the plus (+) character

我对SpringMVCController中的@PathVariable有疑问。每当我传递包含加号('+')的字符串时,加号就会被空格替换。对参数进行编码没有帮助。例如,如果我请求urlmyapp/resend-validation/my+mail@gmail.com,我会在我的email变量中得到“mymail@gmail.com”。在请求myapp/resend-validation/my%2Bmail@gmail.com后也会发生同样的情况我的Controller看起来像这样:@RequestMapping(value="/resend-validation/{email:.+}

为 glob 或类似 Ant 的模式 "*foo/**/*.txt"返回 List<File> 的 Java 库?

我正在寻找一个库,它会提供一种方法,该方法会给我一个匹配给定类Ant模式的文件列表。对于*foo/**/*.txt我会得到foo/x.txtfoo/bar/baz/.txtmyfoo/baz/boo/bar.txt等我知道这可以通过DirWalker和PathMatchermat=FileSystems.getDefault().getPathMatcher("glob:"+filesPattern);,但我更喜欢一些维护的库。我希望CommonsIO拥有它,但没有。更新:我很高兴重用Ant的代码,但更喜欢比整个Ant更小的东西。 最佳答案