有时我会阅读在线javadocs并仍然想知道特定方法是如何工作的.例如,我最近在查看用于Java-11的ArrayList在线javadoc,我无法判断"remove"方法是否缩短了数组的长度,或者只是将空值保留在曾经是元素的位置.
如何查看IntelliJ-IDEA中默认Java类的代码实现?
我有一个2-D的int数组,以及一个带有指向其中一行的参数的方法.我想Set在该行的元素上返回非零值,并且我想在没有for循环的情况下执行此操作.所以这就是我尝试过的:
public Set<Integer> getNeighbors(int node) {
assert node >= 0 && node < numNodes : "getNeighbors(): Invalid node parameter given: " + node + ".";
return Arrays.stream(matrix[node]).filter(n->n>0).collect(Collectors.toSet());
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到一个编译时错误,有点难以解析:
有任何想法吗?
private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
SortedSet<Character> set= new TreeSet<Character>();
for (int i = 0; i < ALPHABET.length(); i++) {
set.add(new Character(ALPHABET.charAt(i)));
}
Run Code Online (Sandbox Code Playgroud)
我想用Java 8方式转换这个for循环.如果使用流可能会更好.输出将是包含Character的"set"对象.
在java 8中,我使用Streams打印输出,但大小为0。为什么?
public class IntermediateryAndFinal {
public static void main(String[] args) {
Stream<String> stream = Stream.of("one", "two", "three", "four", "five");
Predicate<String> p1 = Predicate.isEqual("two");
Predicate<String> p2 = Predicate.isEqual("three");
List<String> list = new ArrayList<>();
stream.peek(System.out::println)
.filter(p1.or(p2))
.peek(list::add);
System.out.println("Size = "+list.size());
}
}
Run Code Online (Sandbox Code Playgroud) 我知道HttpClientBuilder您可以使用 Apache调用useSystemProperties(),如果传递为,它将创建一个SSLContext从javax.net.ssl.keyStore(和信任库)配置的客户端JAVA_OPTS:
try (CloseableHttpClient client = HttpClientBuilder.create().useSystemProperties.build()) {
// If javax.net.ssl props are set, make requests that require client auth
// Otherwise make regular requests
}
Run Code Online (Sandbox Code Playgroud)
我想用 Java 11 做一些类似的事情HttpClient。这样做的原因是在我的用例中,我将密钥存储和信任存储视为可选的,并且不必在我的代码中检查它们的存在会很好。基本上,我想SSLContext根据JAVA_OPTS它们是否存在来设置;否则只使用"Default"上下文。
我写了下面的代码来检查某些情况。
/**
* Returns true if any of the dose detail is an x
* @return boolean
*/
public <DD extends BD<DI>, DI extends BI> boolean Y(final Collection<DD> dds) {
return dds.stream().anyMatch(dd -> dd.M().K());
}
Run Code Online (Sandbox Code Playgroud)
但是此方法有一些风险dds,为空。我需要返回false也是dd也为null。如何使用Java 8将此方法修改为null安全?
有没有办法记录我们使用 spring jpa 内置查询(如 findById!)时生成的密码查询?我有一个复杂的内置查询,我需要查看其密码
我有一个界面
public interface Query {
}
Run Code Online (Sandbox Code Playgroud)
及其实现:
public class UserQuery implements Query {
// specific properties to query a user
}
Run Code Online (Sandbox Code Playgroud)
和另一个界面
public interface Queries{
protected void runQuery(Query q);
}
Run Code Online (Sandbox Code Playgroud)
以及利用它的实现:
public UserQueries extends Queries{
@Override
protected void runQuery(Query q){
// can I avoid this explicit cast with generic type parameters or other design patterns?
// for example Query<UserQuery> ?
var uq = (UserQuery) q;
..
}
Run Code Online (Sandbox Code Playgroud)
}
所有作品,但是,如何避免强制转换runQuery(Query q)(可能带有runQuery(Query<T> q))?
想象一下,一组不同的实现的Query(UserQuery, …
我正在尝试在 Java 8 中学习流媒体。以下是我的代码:
主程序
public class Main {
public static void main(String[] args) {
Person person = new Person("FirstName", "LastName");
List<Person> personList = new ArrayList<>();
personList.add(person);
Place place = new Place("name", "country");
List<Place> placeList = new ArrayList<>();
placeList.add(place);
List<List<Object>> objects = new ArrayList<>();
objects.add(Collections.singletonList(personList));
objects.add(Collections.singletonList(placeList));
List<Object> persons = objects.get(0);
List<String> firstNames = persons.stream()
.map(o -> ((Person)o).getFirstName())
.collect(Collectors.toList());
firstNames.forEach(System.out::println);
}
}
Run Code Online (Sandbox Code Playgroud)
人.java
@Data
public class Person {
String firstName;
String lastName;
public Person(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
} …Run Code Online (Sandbox Code Playgroud) 我想创建一种在流中打印出信息的方法。请查看我现有的记录器方法。方法参数必须是通用的,例如在我的示例字符串和整数中。在我的情况下,该方法应该返回原始对象。有人可以告诉我当前方法有什么问题吗?
在此先多谢!
看一下记录器方法
Stream<String> stream = Stream.of("A", "BC", "XYZ");
stream.map(t -> logger(t.length()))
.map(t-> logger(t.substring(0, 2)))
.collection(Collectors.toList());
public static <T> T logger(T t) {
System.out.println(t);
return t;
}
Run Code Online (Sandbox Code Playgroud)
错误:无法推断地图的类型参数(函数)
java ×10
java-8 ×6
java-stream ×6
collections ×3
casting ×1
generics ×1
java-11 ×1
lambda ×1
ssl ×1