我有一个返回的界面java.lang.Iterable<T>.
我想使用Java 8 Stream API来操纵该结果.
但是Iterable不能"流".
知道如何将Iterable用作Stream而不将其转换为List吗?
有没有一种方法可以在我的bean中获取当前活动的配置文件?
谢谢
我试图理解Java 8中API 的ifPresent()方法Optional.
我有简单的逻辑:
Optional<User> user=...
user.ifPresent(doSomethingWithUser(user.get()));
Run Code Online (Sandbox Code Playgroud)
但这会导致编译错误:
ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here)
Run Code Online (Sandbox Code Playgroud)
我当然可以这样做:
if(user.isPresent())
{
doSomethingWithUser(user.get());
}
Run Code Online (Sandbox Code Playgroud)
但这就像一张杂乱无章的null支票.
如果我将代码更改为:
user.ifPresent(new Consumer<User>() {
@Override public void accept(User user) {
doSomethingWithUser(user.get());
}
});
Run Code Online (Sandbox Code Playgroud)
代码变得越来越脏,这让我想到回到旧的null支票.
有任何想法吗?
我有MainActivity这是一个Activity和其他类(这是一个简单的java类),我们称之为"SimpleClass".现在我想从该类运行命令startActivityForResult.
现在我虽然我可以传递那个类(SimpleClass),只有MainActivity的上下文,问题是,你不能运行context.startActivityForResult(...);
所以使SimpleClass使用'startActivityForResult的唯一方法; 是将MainActivity的引用作为Activity变量传递给SimpleClass,如下所示:
在MainActivity类中,我以这种方式创建SimpleClass的实例:
SimpleClass simpleClass=new SimpleClass(MainActivity.this);
Run Code Online (Sandbox Code Playgroud)
现在这就是SimpleClass的样子:
public Class SimpleClass {
Activity myMainActivity;
public SimpleClass(Activity mainActivity) {
super();
this.myMainActivity=mainActivity;
}
....
public void someMethod(...) {
myMainActivity.startActivityForResult(...);
}
}
Run Code Online (Sandbox Code Playgroud)
现在它的工作,但不是一个正确的方式这样做?我恐怕将来可能会有一些内存泄漏.
谢谢.射线.
我必须运行jmap才能获取我的进程的堆转储.但jvm回来了:
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Run Code Online (Sandbox Code Playgroud)
所以我使用了-F:
./jmap -F -dump:format=b,file=heap.bin 10330
Attaching to process ID 10331, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.51-b03
Dumping heap to heap.bin ...
Run Code Online (Sandbox Code Playgroud)
-F 是可以进行堆转储吗?我收到了这个错误: ERROR/MapActivity(258): Couldn't get connection factory client
一切都很好,突然之间,怎么会发生这种情况?我知道我的api键很好,因为一个月我一直在使用它.怎么突然它没有向我展示地图活动,并在logcat中发布错误?
我有来自外部配置web-service的jdbc属性文件在spring boot中为了设置mysql道具,将它们添加到application.properties很容易:
spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)
我怎么能在我的应用程序中重写那些程序?
Spring-batch道具同样如此:
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost/mydv
database.username=root
database.password=root
Run Code Online (Sandbox Code Playgroud) 我想创建自己的自定义注释.我的框架是Stand alone java应用程序.当有人注释他的pojo类时,后面的"隐藏"代码将触发方法.
例如,今天在Java EE中我们有@MessageDriven注释.当您使用@MessageDrivenMessageListener接口并使用MessageListener接口注释您的类时,会触发一个后面的代码onMessage(Message msg).当消息从队列/主题到达时.
如何创建@MyMessageDriven可以添加到pojo并实现的注释()MyCustomMessageListener.
我想要的结果是触发"隐藏"代码(我的),它将触发一个实现接口的方法(就像我在下面写的样本一样).
我试图使用Spring和Java 8 JDK运行一个简单的JUnit测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@WebAppConfiguration
public class UserServicesTest{
@Test
public void testJava8() {
Set<String> strings = new HashSet<>();
strings.add("a");
strings.add("b");
strings.add("c");
strings.stream().filter(a -> a.equals("a")).forEach(p -> p.toString());
}
Run Code Online (Sandbox Code Playgroud)
我在启动时遇到了这个运行时错误:
org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
at org.aspectj.apache.bcel.classfile.Constant.readConstant(Constant.java:133)
at org.aspectj.apache.bcel.classfile.ConstantPool.<init>(ConstantPool.java:45)
at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:186)
at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadJavaClass(NonCachingClassLoaderRepository.java:262)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadClass(NonCachingClassLoaderRepository.java:242)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadClass(NonCachingClassLoaderRepository.java:249)
at org.aspectj.weaver.reflect.Java15AnnotationFinder.getAnnotations(Java15AnnotationFinder.java:202)
at org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.unpackAnnotations(ReflectionBasedResolvedMemberImpl.java:211)
at org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.hasAnnotation(ReflectionBasedResolvedMemberImpl.java:163)
at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:109)
at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:96)
at org.aspectj.weaver.patterns.AnnotationPointcut.matchInternal(AnnotationPointcut.java:156)
at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch(PointcutExpressionImpl.java:239)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution(PointcutExpressionImpl.java:105)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesMethodExecution(PointcutExpressionImpl.java:96)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getShadowMatch(AspectJExpressionPointcut.java:404)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:271)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:224)
at …Run Code Online (Sandbox Code Playgroud) 我使用的是Weblogic,Ejb3.0.Java 1.6
我需要通过Java代码访问Active Directory.我读了几种方法(Kerberos,LDAP)
任何人都可以建议我这样做的舒适方式?我在哪里可以找到一些完整的代码示例,
谢谢,雷.
java ×8
java-8 ×3
spring ×3
android ×2
java-ee ×2
spring-boot ×2
annotations ×1
google-maps ×1
interface ×1
iterable ×1
java-stream ×1
jvm ×1
jvm-hotspot ×1
kerberos ×1
lambda ×1
ldap ×1
linux ×1
optional ×1
spring-batch ×1