我有一个接口,其声明如下:
/**
* @param T - the type of entity.
* @param C - the type of entity container will be returned.
*/
public interface FindByNamedQuery<T extends Serializable, C extends Collection<T>> extends Command {
C executeNamedQuery(String namedQuery);
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以(应该)打破Java命名约定来执行此操作:
public interface FindByNamedQuery<ENTITY_TYPE extends Serializable, RETURNED_CONTAINER extends Collection<ENTITY_TYPE>> extends Command {
RETURNED_CONTAINER executeNamedQuery(String namedQuery);
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
Java Void引用类型的用途?
Void现实世界中问题的真正用法是什么?在哪种情况下我们可以使用这个类?
以下代码给出了编译时错误:缺少返回值和缺少return语句,我将返回什么值Void Type?
final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>()
{
@Override
protected Void doInBackground() throws Exception
{
// some code
if (something)
{
return;
}
}
}
Run Code Online (Sandbox Code Playgroud) 如果需要返回一个VoidJavadoc描述为的类型
一个类,它是一个不可实例化的占位符类,用于保存对表示Java关键字void的Class对象的引用.
为什么以下仍需要null退回?
public Void blah() {
return null; // It seems to always want null
}
Run Code Online (Sandbox Code Playgroud) 例如,我有这样的代码:( 从这里)
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {}
@Override
protected void onPostExecute(String result) {}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {
}
}
Run Code Online (Sandbox Code Playgroud)
方法参数中的3个点有什么作用?
1)在Java中,我可以这样做:
Void z = null;
Run Code Online (Sandbox Code Playgroud)
除了null我可以指定之外还有其他值z吗?
2)考虑以下代码剪切:
Callable<Void> v = () -> {
System.out.println("zzz");
Thread.sleep(1000);
return null;
};
Run Code Online (Sandbox Code Playgroud)
这编译好了,但是如果我删除最后一个语句return null;则没有.为什么?毕竟,Void应该意味着没有回报价值.
这是我的第一次尝试:
import java.util.function.*;
import java.util.ArrayList;
public class IO<A> {
private Function<World,Tuple<World,A>> transform;
private class World {
private ArrayList<String> stdin;
private ArrayList<String> stdout;
public World() {
this.stdin = new ArrayList<String>();
this.stdout = new ArrayList<String>();
}
}
private class Tuple<F,S> {
public F fst;
public S snd;
public Tuple(F fst, S snd) {
this.fst = fst;
this.snd = snd;
}
}
public IO(Function<World,Tuple<World,A>> transform) {
this.transform = transform;
}
public IO<A> pure(A a) {
return new IO<A>(r -> new Tuple<World,A>(r,a));
}
public …Run Code Online (Sandbox Code Playgroud) (第一篇文章不要欺负我:D)
我的问题很简单,包含在接口HAS中的方法是否必须返回一些值?(int,double,String等..)因为上次我检查过我无法在接口中定义Void方法,得到了编译错误.
提前致谢!干杯!
由于Consumer/Supplier/Predicate/UnaryOperator只是Function的一个特例,我如何用Function替换这些interfacces?
T - >功能 - > R.
T - > Consumer - > null
null - >供应商 - > T.
T - >谓词 - >布尔值
T - > UnaryOperator - > T.
null和boolean只是T的一个特例.所以我用函数来编写两个案例来替换Predicate和UnaryOperator.
例如:
private static void replacePredicate() {
Function<String, Boolean> func = x -> x.startsWith("a");
Predicate<String> pre = x -> x.startsWith("a");
System.out.println(func.apply("ape"));
System.out.println(pre.test("ape"));
}
private static void replaceUnaryOperator() {
Function<Integer, Integer> func = x -> x * 2;
UnaryOperator<Integer> uo = x -> x * 2;
System.out.println(func.apply(6));
System.out.println(uo.apply(6));
} …Run Code Online (Sandbox Code Playgroud) java ×10
void ×5
generics ×2
haskell ×1
interface ×1
java-8 ×1
lambda ×1
return-type ×1
return-value ×1