在JDK 1.6的源代码中,Collections类的swap方法如下所示:
public static void swap(List<?> list, int i, int j) {
final List l = list;
l.set(i, l.set(j, l.get(i)));
}
Run Code Online (Sandbox Code Playgroud)
创建传递列表的最终副本的原因是什么?他们为什么不直接修改传递的列表?在这种情况下,您还会获得原始类型警告.
我正在尝试定义类型的Spring bean,String[]现在能够找到一种方法.示例程序如下所示:
@Component("sampleClass")
public class SampleClass {
@Value("#{someArrayId}")
private String[] someArray;
public void doWithArray() {
System.out.println(Arrays.toString(someArray));
}
}
Run Code Online (Sandbox Code Playgroud)
Spring XML配置
<context:annotation-config />
<context:component-scan base-package="com.demo.spring" />
<util:list id="someArrayId">
<array>
<value>Tiger</value>
<value>Lion</value>
</array>
</util:list>
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,我得到以下异常:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sampleClass': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String[] com.demo.spring.SampleClass.someArray; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.util.ArrayList' to required type 'java.lang.String[]'; nested exception is …Run Code Online (Sandbox Code Playgroud) 使用Oracle SQL,如何为以下内容创建结果集:
例如:
DAY NAME 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday
import java.io.*;
class Sysexecute
{
public static void main(String args[]) throws IOException,InterruptedException,IllegalThreadStateException
{
Runtime rt= Runtime.getRuntime();
Process p=rt.exec("ls");
System.out.println(p.exitValue());
}
}
Run Code Online (Sandbox Code Playgroud)
我正在学习如何在java中执行系统命令,并发生此错误.我尝试使用抛出来否定它但没有用.请解释原因和解决方案
actual error:-
Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited
at java.lang.UNIXProcess.exitValue(UNIXProcess.java:270)
at Sysexecute.main(Sysexecute.java:8)
Run Code Online (Sandbox Code Playgroud) 我试图了解它是如何Spliterator工作的,以及如何设计分裂器.我认识到这trySplit()可能是更重要的方法之一Spliterator,但是当我看到一些第三方Spliterator实现时,有时我会看到他们的分裂器trySplit()无条件地返回null .
问题:
Spliterator无条件返回null 之间有区别吗?看起来这样的分裂者似乎击败了分裂.trySplit(),但是有一个无条件返回null的分裂器的合法用例吗?以下代码在IntelliJ和Eclipse中编译良好,但JDK编译器1.8.0_25抱怨.一,代码.
import java.util.function.Predicate;
public abstract class MyStream<E> {
static <T> MyStream<T> create() {
return null;
}
abstract MyStream<E> filter(MyPredicate<? super E> predicate);
public interface MyPredicate<T> extends Predicate<T> {
@Override
boolean test(T t);
}
public void demo() {
MyStream.<Boolean> create().filter(b -> b);
MyStream.<String> create().filter(s -> s != null);
}
}
Run Code Online (Sandbox Code Playgroud)
javac 1.8.0_25的输出是:
MyStream.java:18: error: incompatible types: incompatible parameter types in lambda expression
MyStream.<Boolean> create().filter(b -> b);
^
MyStream.java:18: error: incompatible types: bad return type in lambda expression
MyStream.<Boolean> create().filter(b -> b); …Run Code Online (Sandbox Code Playgroud) 我正在尝试调用我的后端并设置了一个像这样的简单控制器。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String Hello(IPerson person) {
return person.sayHello();
}
}
Run Code Online (Sandbox Code Playgroud)
IPerson是一个接口如下
package com.example.demo.models;
public interface IPerson {
default String sayHello() {
return "Hey There";
}
}
Run Code Online (Sandbox Code Playgroud)
我已经将接口实现为
package com.example.demo.models;
import lombok.Builder;
@Builder
public class Person implements IPerson{
String name;
String age;
}
Run Code Online (Sandbox Code Playgroud)
当我将控制器中的参数更改为接口的实现时,调用起作用,即
@RestController
public class HelloController {
@RequestMapping("/hello")
public String Hello(Person person) {
return person.sayHello();
}
}
Run Code Online (Sandbox Code Playgroud)
在使用 IPerson 作为参数调用该函数时,出现以下错误。
java.lang.IllegalStateException: No primary or single unique constructor found for interface com.example.demo.models.IPerson
at org.springframework.beans.BeanUtils.getResolvableConstructor(BeanUtils.java:267) …Run Code Online (Sandbox Code Playgroud) 在Java规范(http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.9)中,new具有以下形式:
ClassInstanceCreationExpression ::=
| new TypeArguments_opt TypeDeclSpecifier TypeArgumentsOrDiamond_opt
( ArgumentListopt ) ClassBodyopt
| Primary . new TypeArguments_opt Identifier TypeArgumentsOrDiamond_opt
( ArgumentListopt ) ClassBodyopt
Run Code Online (Sandbox Code Playgroud)
新的后面的第一个可选类型参数列表的目的是什么?我无法从我对15.9节的阅读中找到它(对类型参数列表的所有引用似乎都引用了类型/标识符之后的列表).测试标准Java编译器上的随机位会产生令人困惑的结果:
public class Foo<T> { }
// ...
Foo<Integer> t1 = new <Integer> Foo<Integer>(); // works
Foo<Integer> t2 = new <Integer> Foo(); // works -- unchecked warning missing the type arg after Foo
Foo<Integer> t3 = new <Boolean> Foo<Integer>(); // works
Foo<Integer> t4 = new <Float, Boolean> Foo<Integer>(); // works
Foo<Integer> t5 = new <NotDefined> …Run Code Online (Sandbox Code Playgroud) @Autowired 可以与构造函数,setter和类变量一起使用.
如何@Autowired在方法或任何其他范围内使用注释.我尝试了以下,但它产生编译错误.例如
public classs TestSpring {
public void method(String param){
@Autowired
MyCustomObjct obj;
obj.method(param);
}
}
Run Code Online (Sandbox Code Playgroud)
如果这是不可能的,还有其他方法可以实现吗?(我用过Spring 4.)
Java 8中的monadic编程是否更慢?下面是我的测试(使用右偏置的Either为每次计算创建新实例).命令式版本快1000倍.如何在Java8中编程monadicaly同时获得可比性能?
Main.java
public class Main {
public static void main(String args[]){
Main m = new Main();
m.work();
m.work2();
}
public void work(){
final long start = System.nanoTime();
final Either<Throwable,Integer> result =
Try(this::getInput).flatMap((s) ->
Try(this::getInput).flatMap((s2) ->
parseInt(s).flatMap((i) ->
parseInt(s2).map((i2) ->
i + i2
))));
final long end = System.nanoTime();
result.map(this::println).leftMap(this::println);
System.out.println((end-start)/1000+"us to execute");
}
public void work2(){
Object result;
final long start = System.nanoTime();
try {
final String s = getInput();
final String s2 = getInput();
final int i = …Run Code Online (Sandbox Code Playgroud) java ×9
java-8 ×3
spring ×2
either ×1
interface ×1
lambda ×1
monads ×1
oracle ×1
performance ×1
spliterator ×1
spring-mvc ×1
sql ×1