小编Ben*_*pel的帖子

在使用Oracle JDK的Ubuntu 15.10上,visualvm失败并显示"No jdkhome found"

我从webupd8team/javaPPA 安装了Oracle JDK ,然后安装了该visualvm软件包.启动时visualvm,我收到以下错误消息:

[beni:~]$ visualvm
No jdkhome found
Run Code Online (Sandbox Code Playgroud)

$JAVA_HOME的设置正确/usr/lib/jvm/java-7-oracle.

此外,当从属性集开始visualvmjdkhome,我得到相同的错误:

[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
Run Code Online (Sandbox Code Playgroud)

java visualvm oraclejdk

17
推荐指数
1
解决办法
6562
查看次数

为什么UtteranceProgressListener不是一个接口?

我正在玩Android的TTS功能​​,TextToSpeech类有这个方法来设置一个侦听器,一旦TextToSpeech完成播放就会收到通知:

public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
Run Code Online (Sandbox Code Playgroud)

OnUtteranceCompletedListener定义为public abstract class.由于我MainActivity已经扩展了Activity,它也无法扩展OnUtteranceCompletedListener.我可以使用旧的方法OnUtteranceCompletedListener,但不推荐使用:

public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
Run Code Online (Sandbox Code Playgroud)

为什么OnUtteranceCompletedListener没有定义为public static interface?我正在考虑编写自己的UtteranceProgressListenerImpl,然后只调用MainActivitys onDone方法.这是正确的方式还是有更好/更清洁的选择?

private class UtteranceProgressListenerImpl extends UtteranceProgressListener {

    private MainActivity mainActivity;

    UtteranceProgressListenerImpl(MainActivity mA) {
        mainActivity = mA;
    }

    @Override
    public void onDone(String utteranceId) {
        mainActivity.onDone(utteranceId);
    }

    @Override
    public void onError(String utteranceId) { /* empty */ }

    @Override
    public void onStart(String utteranceId) { /* empty */ } …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech

5
推荐指数
1
解决办法
3661
查看次数

用Spring配置抽象工厂的实现类

对于我的应用程序,我有一个Scale接口和多个实现该接口的类,例如NormalizedScale,LogScale等。在我的一个服务中,我需要创建许多 Scales,并且我想使用 Spring 来定义它应该创建的 Scale 的哪个实现. 我将如何实施这样的事情?

——

我想创建一个工厂ScaleFactory,就像在抽象工厂模式中一样,我可以调用它ScaleFactory.getScale()来获取我在 Spring XML 中配置的任何实现的规模:

class ScaleFactory {
    Class<? extends Scale> scaleImplClass;
    public static Scale getScale() {
        return scaleImplClass.newInstance();
    }
}


Scale myScale = ScaleFactory.getScale();
Run Code Online (Sandbox Code Playgroud)

但是使用这种方法,我如何配置 ScaleFactory 应该从 Spring XML 使用哪个实现?

——

另一种方法是制作ScaleFactorya @Service,然后将 ScaleFactory 自动装配到我的服务中:

@Autowired
ScaleFactory scaleFactory;

...

Scale myScale = scaleFactory.getScale();
Run Code Online (Sandbox Code Playgroud)

然后我可以使用 ScaleFactory 中的自动装配属性来定义scaleImplClass. 但这似乎很奇怪,因为我的工厂也是一个服务,而且我有一个该工厂的实例。

——

另一种方法是Class scaleImplementationClass在我的服务中使用该属性而不是 ScaleFacotry 并像这样使用 ScaleFactory: …

java spring

5
推荐指数
1
解决办法
3629
查看次数

Google Apps 脚本:从日历中检索工作位置

Google 日历中的最新功能允许用户为每个工作日选择工作地点(家庭、办公室或其他)。您知道是否有办法使用 Apps 脚本检索此信息?

谢谢

马蒂厄

google-calendar-api google-apps-script

5
推荐指数
1
解决办法
2264
查看次数