小编Sot*_*lis的帖子

当实例作为其超接口传递时,Java 8默认实现不可用

AbstractMethodError在调用一个方法时会收到一个,我认为该方法应该在目标实例中有一个默认实现.

我在三个参数中创建了一个功能接口,但也派生自java.util.function.Function并提供了一个默认实现Function#apply(..).然后我使用3参数lambda表达式创建我的接口实例.3参数方法都Function#apply(..)可以在创建的实例中正常工作.

当我将创建的实例传递给期望我的接口的方法时,我可以Function#apply(..)从方法中调用它并且它工作正常.

但是当我将实例传递给期望a的方法时Function,我会在AbstractMethodError尝试调用时收到Function#apply(..).

我似乎错过了对默认方法如何以及何时绑定到实例的理解.我做错了什么?

展示:

package spike;

import java.util.function.BiFunction;
import java.util.function.Function;

public class ReductionProblem {

    interface F3<T, U, V, R> extends Function<T, BiFunction<U, V, R>> {

        default BiFunction<U, V, R> apply(final T t) {
            return (U u, V v) -> apply(t, u, v);
        }

        R apply(T t, U u, V v);

    }

    private static <T, U, V, R> BiFunction<U, V, R> workingReduce(
            F3<T, …
Run Code Online (Sandbox Code Playgroud)

java java-8

9
推荐指数
1
解决办法
304
查看次数

上下文混淆 - Spring实例化单例bean两次

我正在以编程方式进行Spring配置.我没有得到我期待的注入结果,所以我查看了日志,出于某种原因Spring正在生成我的单身豆子两次.

我在Tomcat启动日志中得到了这个

INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@74b1128c: defining beans <LIST OF BEANS>

...little further

INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@61de76d0: defining beans <SAME LIST OF BEANS>
Run Code Online (Sandbox Code Playgroud)

这是正常的行为吗?

这是我的应用程序上下文

@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = {"com.application.shiro",
                   "com.business.dao.impl", 
                   "com.business.services"})
public class AppRootContext {    
    /* Beans */
}
Run Code Online (Sandbox Code Playgroud)

这是我的Servlet上下文

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.application.controllers"})
public class AppServletContext extends WebMvcConfigurerAdapter {
    /* Beans */
}
Run Code Online (Sandbox Code Playgroud)

我的Servlet Initializer类叫做BidAppInitializer

@Override
public void onStartup(ServletContext container) throws ServletException {
    AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
    rootContext.register(AppRootContext.class);

    container.addListener(new ContextLoaderListener(rootContext));

    AnnotationConfigWebApplicationContext servletContext = new …
Run Code Online (Sandbox Code Playgroud)

java spring servlets spring-mvc

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

在Java中,如何检查float变量是否为空?

看来,当涉及到*value.getFloat("Value_Quotient",quotient_Float)== null*时,它遇到了一个问题.我该如何解决?

private void Store() {
    quotient_Float = posture_error/time;
    if(value.getFloat("Value_Quotient", quotient_Float)==null || quotient_Float < value.getFloat("Value_Quotient", quotient_Float))
    {
        editor.putFloat("Value_Quotient", quotient_Float);
        editor.commit();
    }           
}
Run Code Online (Sandbox Code Playgroud)

java variables null android

8
推荐指数
2
解决办法
3万
查看次数

Jetty Startup问题:WebAppContext:上下文启动失败oejwWebAppContext {/,null}

我正在尝试与maven开始一场新的项目大战并进入Spring Tool Suite IDE,我从Git Hub下载了该项目,该项目是在mac上进行的,我在windows中工作.

这是我尝试启动Jetty服务器时得到的:

2013-09-03 10:01:47.161:INFO:oejs.Server:jetty-8.1.12.v20130726
2013-09-03 10:01:47.179:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps at interval 1
2013-09-03 10:01:47.183:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\contexts at interval 1
2013-09-03 10:01:47.187:INFO:oejd.DeploymentManager:Deployable added: C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\contexts\moca-console.xml
2013-09-03 10:01:47.238:WARN:oejw.WebInfConfiguration:Web application not found C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0/wtpwebapps/moca-console
2013-09-03 10:01:47.239:WARN:oejw.WebAppContext:Failed startup of context o.e.j.w.WebAppContext{/,null},C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0/wtpwebapps/moca-console
java.io.FileNotFoundException: C:\Users\HP\Documents\workspace-sts-3.3.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0/wtpwebapps/moca-console
    at org.eclipse.jetty.webapp.WebInfConfiguration.unpack(WebInfConfiguration.java:502)
    at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:71)
    at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:457)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:493)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:615)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230) …
Run Code Online (Sandbox Code Playgroud)

eclipse spring jetty maven

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

字符串模式匹配

我无法弄清楚如何解决这个问题:

给出两个字符串,一个表示模式,一个是随机字符串,确定它是否与第一个字符串匹配

例如:

string1: "aaba"
string2: "catcatdogcat"
Run Code Online (Sandbox Code Playgroud)

因此,string1和string2是模式匹配的

与string2相比,"catcatcatcat"这不是模式匹配的.

对任何模式和字符串执行此操作.

我知道这是递归,但我很坚持......如何解决这个问题

java string algorithm

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

instanceof何时返回FALSE?

我知道当对象是特定类的实例时,instanceof返回TRUE.例如:

B extends A
C extends A

B b = new B();
C c = new C();

b instanceof A // returns TRUE
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好,所以让我们输入看起来应该返回false的东西:

c instanceof B // won't compile (error: inconvertible types)
Run Code Online (Sandbox Code Playgroud)

这不编译,这是有道理的,因为它允许在编译时捕获疏忽.但是,当DOES instanceof实际返回false时?似乎只有两个选项是TRUE和ERROR.我能想到的唯一例外是:

null instanceof A // returns FALSE
Run Code Online (Sandbox Code Playgroud)

但是通过与上面相同的逻辑,似乎应该在编译时捕获它.

我在这里错过了什么?true/error是唯一可行的选项,还是可以以更有意义的方式实际返回false,除了将null作为引用变量给出?

java instanceof

8
推荐指数
2
解决办法
4443
查看次数

当servlet有Construtor时,为什么我们需要在servlet中使用Init()方法?

在java中,构造函数用于初始化为什么我们需要init()进行初始化....这个问题是在面试中提出的

java servlets

8
推荐指数
2
解决办法
5550
查看次数

Java是否在任何地方定义其原始类型的大小?

是否有一个包定义了我可以在项目中导入的Java基元的大小?我正在做一些手动位设置,我保留一个字节索引.我currentByte += 4设置一个int(魔术数字不赞成)时我不想做,我宁愿这样做currentByte += <SomePackage>.SIZE_OF_INT

我想我可以定义自己的,但这有点笨重,特别是如果那些在某个地方可用.

java primitive primitive-types

8
推荐指数
2
解决办法
1070
查看次数

java 8 Collector <String,A,R>不是一个功能界面,谁可以告诉为什么?

以下代码:

public class Test {
    public static void main(String[] args) {

        Stream.of(1,2,3).map(String::valueOf).collect(Collectors::toList)
    }
}
Run Code Online (Sandbox Code Playgroud)

intellij告诉我:

Collector<String, A, R> 不是功能界面

但是当我按如下方式修改代码时,一切都还可以,我不知道为什么?

public class Test {
    public static void main(String[] args) {

        Stream.of(1,2,3).map(String::valueOf).collect(Collectors.<String>toList());
    }
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream collectors

8
推荐指数
2
解决办法
4614
查看次数

如果对int变量的写入和读取是原子的,为什么需要AtomicInteger?

我在Oracle文档中读过:

  • 读取和写入对于引用变量和大多数 原始变量(除long和double之外的所有类型)都是原子的.

(我想这个功能已经在一些新的JDK版本中添加了,因为我曾经认为所有原始变量的读/写都不是原子的)

这是否意味着AtomicInteger已弃用且不应在新项目中使用?

java multithreading atomic atomicinteger

8
推荐指数
3
解决办法
899
查看次数