当我尝试通过gradle测试任务运行JUnit测试时,我遇到了麻烦.当我使用Run As - > JUnit测试直接在eclipse中运行测试时,一切正常,测试成功.但是通过测试任务,测试总是失败.编码我的资源txt文件可能有些麻烦.所以我想在使用gradle启动测试时启用调试
在build.gradle中,我的测试任务现在看起来像:
test {
tasks.withType(Compile) {
options.encoding = 'UTF-8'
}
}
Run Code Online (Sandbox Code Playgroud)
那么我应该怎样做才能启用调试?我在Eclipse中从Gradle面板运行gradle任务,而不是从控制台运行.谢谢!
我正在读一本关于编程的书,我遇到了这样的事情:
public static enum Month {
JANUARY(1),
FEBRUARY(2),
MARCH(3),
APRIL(4),
MAY(5),
JUNE(6),
JULY(7),
AUGUST(8),
SEPTEMBER(9),
OCTOBER(10),
NOVEMBER(11),
DECEMBER(12);
Month(int index) {
this.index = index;
}
Run Code Online (Sandbox Code Playgroud)
枚举实例后括号中的数字是什么意思?它是一个枚举构造函数吗?
请考虑以下设置:
我们有一个SuperType参数化的接口,如下所示:
public interface SuperType<V> {
}
Run Code Online (Sandbox Code Playgroud)
SuperType支持方法链接.因此它定义了另一个类型参数,它捕获每个方法返回的具体实现子类型,如下所示:
public interface SuperType<V, S extends SuperType<V, S>> {
public S doSomething();
}
Run Code Online (Sandbox Code Playgroud)
让我们考虑一下以下的实现SuperType<V, S extends SuperType<V, S>>:
public class SubType<V> implements SuperType<V, SubType<V>> {
private final V value;
public SubType(V value) { this.value = value; }
public SubType<V> doSomething() { return this; }
}
Run Code Online (Sandbox Code Playgroud)
有人SubType<V>使用例如字符串实例化,但提供Object了type参数V:
Object s = "Java Generics";
SubType<Object> x = new SubType<>(s);
Run Code Online (Sandbox Code Playgroud)
现在我们要定义另一个方法,SuperType<V, S extends SuperType<V, S>> …
例如,有两个类:
class Team {
List<Player> players; //with getter & setter
}
class Player{
String name; //with getter & setter
int number; //with getter & setter
}
Run Code Online (Sandbox Code Playgroud)
所以,如果有三支球队:
红队:亚当(4)、汤姆(5)、彼得(11)
蓝队:肯(5),贾斯汀(11)
黑队 : Kim(4), Jackal(3)
我想使用 lambda 来获取拥有球衣编号为 X 的成员的团队。例如:
过滤器为 4 将获得红色,黑色
过滤器与 11 将获得红色和蓝色。
我知道如何仅在玩家级别进行过滤,例如
players.stream().filter(p->p.number.equal(X))
Run Code Online (Sandbox Code Playgroud)
或 flatmap 以获取玩家列表
teams.stream().flatmap(t->t.getPlayers())
Run Code Online (Sandbox Code Playgroud)
但是我如何混合这些 lambda 来让团队在玩家上有一个属性过滤器?
我努力为这个问题找到一个合适的头衔,因为我观察到的现象非常奇怪.因此,我逐字逐句解释我的问题,而是向您展示一些(希望)自我描述的代码.考虑以下参数化类:
public class GenericOptional<T> {
public GenericOptional(T someValue) {}
public T getValue() { return null; }
public Optional<String> getOptionalString() { return Optional.empty(); }
}
Run Code Online (Sandbox Code Playgroud)
我想强调的是,返回类型Optional<String>的方法,getOptionalString()不依赖于类型参数 T.
现在看看下面的代码,它使用Java 8u45在Eclipse Luna 4.4.2中编译:
public static void main(String[] args) {
Object obj = new GenericOptional<>(Boolean.TRUE);
GenericOptional go = (GenericOptional) obj;
Optional os = go.getOptionalString();
}
Run Code Online (Sandbox Code Playgroud)
局部变量os的类型Optional没有type-parameter String!在Eclipse的编译器已经失去了对固定的信息类型参数.有谁知道为什么?
现在看第二个代码示例:
public static void main(String[] args) { …Run Code Online (Sandbox Code Playgroud) 我通过流式传输对象列表来调用异步客户端方法.该方法返回Future.
迭代调用后返回的Futures列表的最佳方法是什么(以便处理那些首先出现的Future)?
注意:异步客户端仅返回Future not CompletableFuture.
以下是代码:
List<Future<Object>> listOfFuture = objectsToProcess.parallelStream()
.map((object) -> {
/* calling an async client returning a Future<Object> */ })
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud) 我现在构建的逻辑中存在错误.应该发生的是我的代码应该显示0和1的网格.像这样:
001001
101101
010110
110010
001101
Run Code Online (Sandbox Code Playgroud)
所以这里必须发生的是:
编辑:进一步澄清确定所以我有这样一行:0 1 0 1 1 0 - 你可以看到总会有3 x 1和3 x 0 - 数字的顺序是随机挑选的(所以它可能会去0 1,或1 1,或0 0开始等) - 连续不能超过2个相同类型的数字,例如如果它是001100,你可以看到有2 0,那么它必须显示一个1,但是那时有2个1,所以它必须显示0.所以011100不会发生(连续3个1)或000101(连续3个0)
所以我的代码如下:
import java.util.Random;
public class Main {
public static void main(String[] args) {
int l = 6;
int w = 6;
Random rd = new Random();
// Create a grid that is 6 x 6
int[][] grid = new int[l][w];
// for each row
for (int i …Run Code Online (Sandbox Code Playgroud) 我已将我的代理服务器配置为仅HTTPS.现在我希望对于具有模式^/backend(.*)$的特定URL,请求被重定向到端口8080(使用HTTP而不是HTTPS).
如果我在没有HTTPS的情况下配置代理服务器,我可以这样做:
$HTTP["url"] =~ "^/backend(.*)$" {
proxy.server = ("" => (
("host" => "127.0.0.1", "port" => 8080)
))
}
Run Code Online (Sandbox Code Playgroud) 在我的代码NullPointerException中,当a List为null 时,我通常使用这种方法来避免s in语句:
if (myList != null && myList.size() > 0) {
for ( MyObj obj : myList ) {
System.out.println("MyObjStr: "+obj);
}
}
Run Code Online (Sandbox Code Playgroud)
是否有其他方法可以在不写"if"语句的情况下执行相同操作,但使用相同的"for"语句?
我的代码中有这样的东西,只有我有更多的FXML元素,所以有很多@FXML
@FXML
private TableColumn<Player, String> playerColumn1;
@FXML
private TableColumn<Player, String> playerColumn2;
@FXML
private TableColumn<Player, String> playerColumn3;
Run Code Online (Sandbox Code Playgroud)
我想用相同的注释来平衡某个块的每一行代码,就像这样,有没有办法做到这一点?
@FXML
{
private TableColumn<Player, String> playerColumn1;
private TableColumn<Player, String> playerColumn2;
private TableColumn<Player, String> playerColumn3;
}
Run Code Online (Sandbox Code Playgroud) java ×7
java-8 ×3
eclipse ×2
generics ×2
algorithm ×1
annotations ×1
arraylist ×1
collections ×1
concurrency ×1
constructor ×1
enums ×1
for-loop ×1
future ×1
fxml ×1
gradle ×1
lambda ×1
lighttpd ×1
nested ×1
optional ×1
ssl ×1
testing ×1
unit-testing ×1