小编ray*_*man的帖子

使用Java 8 JDK将Iterable转换为Stream

我有一个返回的界面java.lang.Iterable<T>.

我想使用Java 8 Stream API来操纵该结果.

但是Iterable不能"流".

知道如何将Iterable用作Stream而不将其转换为List吗?

java iterable java-8 java-stream

402
推荐指数
6
解决办法
11万
查看次数

如何使用Spring启动以编程方式确定当前活动的配置文件

有没有一种方法可以在我的bean中获取当前活动的配置文件?

谢谢

java spring spring-boot

100
推荐指数
1
解决办法
8万
查看次数

正确使用Optional.ifPresent()

我试图理解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支票.

有任何想法吗?

java lambda optional java-8

78
推荐指数
5
解决办法
14万
查看次数

使用非活动的startActivityForResult

我有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)

现在它的工作,但不是一个正确的方式这样做?我恐怕将来可能会有一些内存泄漏.

谢谢.射线.

java android

76
推荐指数
2
解决办法
6万
查看次数

运行jmap获取无法打开套接字文件

我必须运行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)
  1. 使用-F 是可以进行堆转储吗?
  2. 我等了20分钟还没完呢.有什么想法吗?

java linux jvm jvm-hotspot

76
推荐指数
4
解决办法
5万
查看次数

无法获得连接工厂客户端

我收到了这个错误: ERROR/MapActivity(258): Couldn't get connection factory client

一切都很好,突然之间,怎么会发生这种情况?我知道我的api键很好,因为一个月我一直在使用它.怎么突然它没有向我展示地图活动,并在logcat中发布错误?

android google-maps google-maps-android-api-1

52
推荐指数
2
解决办法
6万
查看次数

如何以编程方式覆盖Spring-boot application.properties

我有来自外部配置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)

spring spring-batch spring-batch-admin spring-boot

43
推荐指数
8
解决办法
5万
查看次数

如何使用后面的代码创建自定义注释

我想创建自己的自定义注释.我的框架是Stand alone java应用程序.当有人注释他的pojo类时,后面的"隐藏"代码将触发方法.

例如,今天在Java EE中我们有@MessageDriven注释.当您使用@MessageDrivenMessageListener接口并使用MessageListener接口注释您的类时,会触发一个后面的代码onMessage(Message msg).当消息从队列/主题到达时.

如何创建@MyMessageDriven可以添加到pojo并实现的注释()MyCustomMessageListener.

我想要的结果是触发"隐藏"代码(我的),它将触发一个实现接口的方法(就像我在下面写的样本一样).

java annotations dependency-injection interface

37
推荐指数
2
解决办法
6万
查看次数

Spring 4和Java 8无效的字节标记异常

我试图使用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)

java spring java-ee java-8

33
推荐指数
1
解决办法
4万
查看次数

如何将Java连接到Active Directory

我使用的是Weblogic,Ejb3.0.Java 1.6

我需要通过Java代码访问Active Directory.我读了几种方法(Kerberos,LDAP)

任何人都可以建议我这样做的舒适​​方式?我在哪里可以找到一些完整的代码示例,

谢谢,雷.

java kerberos ldap active-directory java-ee

30
推荐指数
2
解决办法
10万
查看次数