Tag: 参数

如何返回作为参数给出的相同Collection类型,但具有不同的元素类型?

我想做这个: public <C extends Collection> C strings_to_files(C strings) { C files = new C(); for(String string : strings) { files.add(new File(string) } return files; } 我只是希望它采取任何字符串集合,并返回与文件相同的集合类型。 有没有办法做到这一点? 或者我可能只是语法错误…

generics:确保参数类型相同

我有以下方法: protected void setValue(final S oldValue, final S newValue) { // Do something } 我想确保两个参数属于同一类型。 如果在尝试传递两种不同类型的参数时出现编译器错误,那将会很酷。 上述方式显然不正确。 我可以放入一个String和一个Integer ,因为它们都是从Object扩展而来的。 我的想要甚至可能吗? 或者是唯一的方法来确保两个参数都是相同的类型,以检查方法内部并抛出IllegalArgumentException ?

你能通过Java引用吗?

很抱歉,如果这听起来像一个新手问题,但前几天Java开发人员提到通过引用传递一个参数(通过引用传递一个参考对象) 从C#的角度来看,我可以通过值或引用传递引用类型,这也适用于值类型 我写了一个noddie控制台应用程序来显示我的意思..我可以用Java做到这一点吗? namespace ByRefByVal { class Program { static void Main(string[] args) { //Creating of the object Person p1 = new Person(); p1.Name = “Dave”; PrintIfObjectIsNull(p1); //should not be null //A copy of the Reference is made and sent to the method PrintUserNameByValue(p1); PrintIfObjectIsNull(p1); //the actual reference is passed to the method PrintUserNameByRef(ref p1); […]

试图将多个命令行参数传递给javaws启动应用程序?

我已经看到了类似的问题,但没有一个能够帮助我解决我的问题。 我被要求能够传递多个命令行参数来启动我们使用的自定义Java应用程序。 无论如何,我已经尝试过这个命令,因为我能找到的所有文档都说: “javaws -open arg1 arg2 arg3 arg4 arg5 arg6 http://yadda/html/launch.jnlp” 我也尝试了各种数量的参数,并注意到“-open”确实传入了参数arg [0]但由于某种原因它不会接受更多的参数。 其中一个相关的解决方案说你可以根据需要为JNLP添加任意数量的参数,如下所示,如果没有提供参数,则应该使用默认值,但是如果它们是,那么它应该传递它们而不是默认值。 这是真的? testARG1 testARG2 testARG3 testARG4 testARG5 testARG6 本地Java: C:\ Users \ user> java -version java版“1.6.0_31” Java(TM)SE运行时环境(版本1.6.0_31-b05) Java HotSpot(TM)64位服务器VM(构建20.6-b01,混合模式)’ LinuxServer:〜#java -version java版“1.7.0” IcedTea运行时环境(版本1.7.0-b24) IcedTea 64位服务器VM(内置1.7.0-b24,混合模式) 它可能与服务器与本地机器的不同版本有关吗? 或者还有其他我想念的东西? 任何帮助或帮助将不胜感激! 谢谢! 玩笑

如何在JUnit 5中使用String数组进行参数化

我想编写JUnit 5参数化测试,它将字符串数组( String[] )作为参数: @ParameterizedTest @MethodSource(“stringArrayProvider”) void parseFirstAndSecondInt(String[] args) { Arguments arguments = new Arguments(args); assertEquals(1, arguments.getFirst()); assertEquals(2, arguments.getSecond()); } 我不确定,如何提供字符串数组的集合/流/迭代器。 我没有成功尝试使用@MethodSource注释的方法 static Stream stringArrayProvider() { return Stream.of( new String[]{“1”, “2”}, new String[]{“1”, “2”, “3”}); } 但是我收到了这个例外: org.junit.jupiter.params.converter.ArgumentConversionException: No implicit conversion to convert object of type java.lang.String to type [Ljava.lang.String; 有这种参数化测试的好设计/解决方案是什么?

是否有更简单的替代方法来模仿splat运算符?

我发现它可以在Ruby中使用,但我从我在Python中所做的事情中认识到它; “splat”运算符。 长话短说,我想知道是否有更简单的方法来完成我目前的工作,模仿“splat”操作符的作用。 我做了一个中心方法,其余的可以打电话,因为我意识到我有几个非常相似的方法,除了一些小的东西,他们都在做同样的事情。 这是方法签名: private String callScript(String scriptLocation, String… extraArgs) throws Exception { 我想要至少一个参数( scriptLocation ),然后允许任意数量的额外参数。 我最终做的就是创建一个ProcessBuilder 。 我的愿望是做这样的事情: ProcessBuilder pb = new ProcessBuilder(“something”, scriptLocation, /* extraArgs */); 但是,当然, ProcessBuilder构造函数只接受以下内容: List String[] String… 所以我的方法显然不起作用。 据我所知,我当前的解决方法是: List finalArgs = new ArrayList(); finalArgs.add(“something”); finalArgs.add(scriptLocation); finalArgs.addAll(Arrays.asList(extraArgs)); ProcessBuilder pb = new ProcessBuilder(finalArgs); (是的,我知道我不必使用List ,只能创建一个String[] ) (是的,我知道我可以遍历extraArgs并将它们单独添加到extraArgs ,而不必使用addAll和Arrays.asList() ) […]

JAR-manifest中的默认参数

有没有办法创建一个包含一些传递给主类的参数的JAR文件? (它是否为可能的命令行参数预先添加或附加参数无关紧要。) 我知道我可以简单地编写一个bootstrapping类并将其指定为主类(使用参数调用真正的主类),但这看起来有点尴尬。

Spring数据JPA和可以为null的参数

我的理解是,使用Spring数据JPA我不能有一个查询方法来获取列等于给定的非null方法参数的所有行,并且当method参数为null时,使用相同的方法获取此列为NULL的所有行。 那是对的吗? 所以我必须在我的JAVA代码中区分它,我必须使用一个单独的查询方法明确要求空值,如下例所示? // Query methods List findByParameter(Parameter parameter); List findByParameterIsNull(); … List result = new ArrayList(); if (parameter == null) result = findByParameterIsNull(); else result = findByParameter(parameter); 这很糟糕,如果我有4个参数可以为null并且必须编码16种不同的查询方法。

jsp:使用Java类的param

我有一个包含另一个JSP文件的JSP文件。 第一个JSP应该将Java类(窗口小部件)的实例传递给第二个JSP文件。 这就是我所拥有的: 第一个JSP: // widget is a .Java POJO 第二个JSP: ${param.widget.id} 问题是这段代码给出了一个错误(它说它不知道ID)。 如果省略“.id”部分,页面将打印Java类的Java代码,这意味着该类已正确传输。 如果我更改第一页的$ {widget}规则,例如$ {widget.id},我尝试打印$ {param.widget},一切正常。 我的问题:为什么我不能传递Java类并直接调用它的属性? 我究竟做错了什么? 编辑:错误消息:引起:javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性’id’

将Scanner对象作为参数传递给函数的基本语法

这是我写的非常基本的东西: import java.util.Scanner; public class Projet { /** * @param args * @param Scanner */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(“Enter a digit”); Scanner in = new Scanner(System.in); getChoice(Scanner); in.close(); } public static int getChoice(Scanner n){ n = in.nextInt(); return n; } } 这里似乎有什么不对? 我之前有工作,我必须将Scanner类型和参数名称作为参数传递给函数…并且只需使用Scanner类型和参数作为函数的参数在main中调用该函数? – – -编辑 – […]