小编Tho*_*ler的帖子

杰克逊:是否覆盖原始类型的反序列化?

我们需要在这里处理来自旧服务器的一些损坏的JSON,这些JSON 在其输出中错误地将null值编码为文字"null"字符串。

我已经发现我可能想将https://github.com/FasterXML/jackson-core/blob/master/src/main/java/com/fasterxml/jackson/core/base/ParserMinimalBase.java#L368覆盖为“解决”,但这似乎在杰克逊的内心深处,我宁愿以其他方式来做。是否有其他选择,例如使用ObjectMapper来为添加一个自定义解串器,String.class否则我会迷路吗?

java json jackson

6
推荐指数
1
解决办法
1791
查看次数

获取以前的构建结果

我想模仿当构建变得不稳定/失败或再次成功时,Jenkins做事的原始行为(例如发出通知)。

为此,我需要查询以前的构建状态,可以这样进行:

currentBuild.rawBuild.getPreviousBuild()?.getResult().toString()
Run Code Online (Sandbox Code Playgroud)

但是,它rawBuild被认为是“危险”对象,因此被列入黑名单,因此无法在Groovy沙箱内部执行

现在,由于我正在从SCM加载我的Jenkins脚本,因此我无法在每个项目级别上停用Groovy沙箱,而只能在整个Jenkins实例上(即通过this)停用,这当然不是问题我想要。

是否有其他方法可以确定我错过的符合沙盒原则(并且不包括通过Jenkins的REST API查询状态等黑客行为)的作业的上次构建状态?

jenkins-pipeline jenkins-2

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

如何在Android中发现时区变化?

人们可以通过配置监听所有类型的配置更改android:configChangesAndroidManifest.xml,并在活动的采取相应的行动onConfigrationChanged方法(Android的文档).

到目前为止我没有找到的是一个处理时区变化的处理程序.例如,如果用户经常在旅程之后穿过时区并且想要在他所在的国家的当地时间看到他的申请内容,则可能发生这种情况.

我在这里唯一的可能是真正地检查TimeZone.getDefault()自己并相应调整我的时间吗?

timezone android

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

RxJava流程:条件运算符和错误处理

我是RxJava的新手,并尝试围绕一个更复杂的登录逻辑,包含三个异步方法来处理.对我来说这是"如果我将这个东西转换为RxJava,任何东西(tm)都是可能的":)

所以我想做的是以下内容:

Call A -> (Process A) -> Call B with results of A -> (Process B) -\
                    \                                              -> Combine and Subscribe
                     \-> Call C with results of A -> (Process C) -/
Run Code Online (Sandbox Code Playgroud)

现在的问题是Call C分支应该只在特定条件下执行,否则不能执行(Combine and Subscribe然后可以NULL从该分支接收一个值,这没关系).

此外,错误处理并非易事:虽然Call ACall C(如果这样运行)需要将错误传递onError给最终订阅者,但Call B"成功"是相当可选的,并且在失败的情况下可以忽略.

这是我到目前为止提出的,它仍然忽略了"C"分支:

 mApi.callA(someArgs)
            // a transition operator to apply thread schedulers
            .compose(applySchedulers())
            // from rxlifecycle-components, unsubscribes automatically 
            // when the activity goes down …
Run Code Online (Sandbox Code Playgroud)

java reactive-programming rx-java rx-android

3
推荐指数
1
解决办法
1272
查看次数

获取类的类名

Groovy 初学者,来自 Java / Kotlin,如何获取我的类的(匿名)实现的类名?

失败的尝试:

abstract class Foo {
    String name() { this.class.simpleName }
}

abstract class Foo {
    String name() { return this.class.simpleName }
}

abstract class Foo {
    String name() { return getClass().getSimpleName() }
}

abstract class Foo {
    String name() { this.metaClass.classNode.nameWithoutPackage }
}
Run Code Online (Sandbox Code Playgroud)

显然我似乎给了一些类实例一个默认名称。我想“好吧,如果类名不起作用,让我们尝试单独命名”:

abstract class Foo {
    private final AtomicInteger counter = new AtomicInteger(0)
    String name() { "number " + this.counter.incrementAndGet() }
}
Run Code Online (Sandbox Code Playgroud)

但这也不起作用,因为counter is not a property of groovy.lang.Binding.

这都是在我尝试编写的 Jenkins …

groovy jenkins jenkins-pipeline

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

当手动弹出FragmentManager的后台堆栈时,如何实现反向转换?

我正在使用v4兼容性库并切换到这样的新片段:

 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 transaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
 transaction.replace(R.id.contentFragmentContainer, event.getFragmentClass().newInstance(), FRAGMENT_CONTENT);
 transaction.addToBackStack(fragmentTransactionName);
 transaction.commit();
Run Code Online (Sandbox Code Playgroud)

现在,当我想以编程方式返回到先前的片段而不用新片段事务污染用户的后台堆栈时,我使用popBackStackImmediate():

 if (fragmentManager.popBackStackImmediate(fragmentTransactionName, 0)) {
     return;
 }
 // apparently popping back to that fragment was not successful,
 // make a regular transaction now
Run Code Online (Sandbox Code Playgroud)

尽管已经用于动画到其中一个弹出片段的动画不会被反转,但这样可以正常工作.我也尝试过transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)预先使用,但是当常规交易发生时,这甚至都没有显示出转变,也没有反过来显示.

我究竟做错了什么?

android transitions android-fragments

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

在"pre-butter"Android中的"Buttery"片段动画

我正在使用Google的compat lib在我的应用程序(Target SDK 16,Min SDK 8)中为2.2+上运行的设备启用片段.从功能的角度来看,这很好,但是通过设置的视图动画的性能

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(inTransition, outTransition, popInTransition, popOutTransition);
Run Code Online (Sandbox Code Playgroud)

inTransition简单的翻译在哪里

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="@integer/animation_duration" />
</set>
Run Code Online (Sandbox Code Playgroud)

并且outTransition是一个褪色动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@integer/animation_duration" />
</set>
Run Code Online (Sandbox Code Playgroud)

对我的Galaxy S2(4.0.3)来说,这简直太糟糕了,即对于一个持续约350ms的动画我会说约.一半的帧被丢弃.我注意到如果我禁用淡出,性能会稍微提高(但不会太多),但当然动画的完整效果会消失,因为原始片段会立即变黑.我也尝试了代码的发布版本,但性能也没有提高.

我究竟做错了什么?如何使片段动画更流畅?

performance animation android android-fragments

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

如何在android中旋转按钮视图

我想将Button视图旋转45度.为此,我编写了如下所示的代码.现在,不是旋转Button本身,而是按钮上的文本或标签会旋转.但我希望按钮旋转45度.我怎么能做到这一点?

public class MyButton extends Button {

    public float degrees;
    public float sWidth;
    public float sHeight;

    public MyButton(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub

        canvas.save();
        canvas.rotate(45.0f);
        super.onDraw(canvas);

        canvas.restore();
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        // TODO Auto-generated method stub
        super.onSizeChanged(w, h, oldw, oldh);
        sWidth=w;
        sHeight=h;
    }
}
Run Code Online (Sandbox Code Playgroud)

android

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