想象下面的代码: void DoThis() { if (!isValid) return; DoThat(); } void DoThat() { Console.WriteLine("DoThat()"); } 在void方法中使用返回是可以的吗? 它有任何性能损失? 或者写一个这样的代码会更好: void DoThis() { if (isValid) { DoThat(); } }
假设我在Java 8中有以下function接口: interface Action<T, U> { U execute(T t); } 对于某些情况,我需要一个没有参数或返回types的动作。 所以我写这样的东西: Action<Void, Void> a = () -> { System.out.println("Do nothing!"); }; 不过,它给我编译错误,我需要把它写成 Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;}; 这是丑陋的。 有没有什么办法摆脱Voidtypes的参数?
以下Java代码无法编译: @FunctionalInterface private interface BiConsumer<A, B> { void accept(A a, B b); } private static void takeBiConsumer(BiConsumer<String, String> bc) { } public static void main(String[] args) { takeBiConsumer((String s1, String s2) -> new String("hi")); // OK takeBiConsumer((String s1, String s2) -> "hi"); // Error } 编译器报告: Error:(31, 58) java: incompatible types: bad return type in […]
int fn(); void whatever() { (void) fn(); } 是否有任何理由将未使用的回报价值废除,还是我认为这是完全浪费时间? 跟进: 那么这似乎相当全面。 我认为它比评论一个未使用的返回值更好,因为自我logging代码比评论更好。 就个人而言,我会把这些警告closures,因为这是不必要的噪音。 如果一个bug因为它而逃脱,我会吃掉我的话…
由于在Java中使用generics,我最终不得不实现一个具有Void作为返回types的函数: public Void doSomething() { //… } 编译器要求我返回一些东西 。 现在我只是返回null ,但我想知道如果这是好的编码习惯… 我也尝试过Void.class , void , Void.TYPE , new Void() ,根本没有任何回报,但所有这些都不起作用。 (或多或less显而易见的原因)(请参阅此答案的详细信息) 那么如果函数的返回types是Void我应该返回什么呢? 什么是Void类的一般用法? 编辑:只是为了节省您的downvotes:我问V oid,而不是v oid。 类Void , 而不是保留关键字void 。
我正在寻找一个path查找教程 ,我注意到一个void方法(class PathTest ,126行)中的return语句: if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) { return; } 我是Java的新手。 谁能告诉我为什么在那里? 据我所知, return里面的一个void方法是不允许的。
我在java中编写了这个简单的类来testing它的一些特性。 public class class1 { public static Integer value=0; public class1() { da(); } public int da() { class1.value=class1.value+1; return 5; } public static void main(String[] args) { class1 h = new class1(); class1 h2 = new class1(); System.out.println(class1.value); } } 输出是: 2 但是在这个代码中: public class class1 { public static Integer value=0; public void class1() […]
我只是碰巧实现一个方法void followlink(obj page,obj link) ,它只是添加页面和链接到队列。 我没有试图testing这种方法。 我只想testing在队列中包含从followlink方法收到的页面和链接。 我的testing类已经扩展了TestCase。 那么testing这种方法的最好方法是什么?
什么更好: void foo()或void foo(void) ? 无效看起来丑陋和不一致,但我被告知这是好的。 这是真的? 编辑:我知道一些旧的编译器做奇怪的事情,但如果我只使用GCC,是void foo()好吗? 将foo(bar); 那么被接受?
我试图将一个void **指针投射到C中的一个int ** 2D数组 这里是我正在尝试使用的代码(删除所有多余的位): \*assume that i have a data structure called graph with some *element "void** graph" in it and some element "int order" */ void initialise_graph_data(graph_t *graph) { void **graph_data = NULL; int (*matrix)[graph->order]; size_t size = (graph->order * graph->order) * sizeof(int); graph_data = safe_malloc(size); /*safe malloc works fine*/ matrix = (int(*)[graph->order])graph_data; […]