小编ste*_*ana的帖子

设置插件与DateTime属性无法正常工作

我正在使用设置插件,我正在努力存储一些布尔值.现在我想添加管理DateTime对象.我在Settings.cs中添加了以下内容:

private const string TimeRemainingKey = "time_remaining";
private static readonly DateTime TimeRemainingDefault = DateTime.Now;

public static DateTime TimeRemaining
{
    get
    {
        return AppSettings.GetValueOrDefault(TimeRemainingKey, TimeRemainingDefault);
    }
    set
    {
        AppSettings.AddOrUpdateValue(TimeRemainingKey, value);
    }
}
Run Code Online (Sandbox Code Playgroud)

最初我在我的代码中使用了以下内容:

Settings.TimeRemaining = new DateTime().AddMinutes(30);
Run Code Online (Sandbox Code Playgroud)

当我添加一些日志记录时,我有这个:

DateTime dt = new DateTime();
Debug.WriteLine(dt.ToString());
dt = dt.AddMinutes(30);
Debug.WriteLine(dt.ToString());
Settings.TimeRemaining = dt;
Debug.WriteLine(Settings.TimeRemaining.ToString());
Run Code Online (Sandbox Code Playgroud)

打印出来:

1/1/0001 12:00:00 AM

1/1/0001 12:30:00 AM

1/1/0001 12:00:00 AM

为什么会出现这种情况?

c# xamarin win-universal-app

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

使用TreeTranslator重命名不适用于Kotlin的函数

我正在尝试根据AST(抽象语法树)重写在构建期间重命名Java接口中的方法和Kotlin接口中的函数.对于这个问题,我们忽略了重命名方法/函数给调用带来的影响.要找到要重命名的方法/函数,我正在使用自定义注释和注释处理器.我按照这些说明操作Java接口.

我用三个模块创建了一个新项目.app模块,注释模块和注释处理器模块.

该应用模块是一个Android应用程序,并包含与一个注释的方法/函数每两个独立的Java和科特林接口文件.

RenameJava.java

package nl.peperzaken.renametest;

import nl.peperzaken.renameannotation.Rename;

public interface RenameJava {
    @Rename
    void methodToRename();
}
Run Code Online (Sandbox Code Playgroud)

RenameKotlin.kt

package nl.peperzaken.renametest

import nl.peperzaken.renameannotation.Rename

interface RenameKotlin {
    @Rename
    fun functionToRename()
}
Run Code Online (Sandbox Code Playgroud)

注释模块是一个只包含@Rename注释的Java库,我们指定只在函数上允许它,我们说它只能在源代码中可见.

Rename.kt

package nl.peperzaken.renameannotation

@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.SOURCE)
annotation class Rename
Run Code Online (Sandbox Code Playgroud)

注释处理器模块是一个Java库,它只包含迭代具有注释的元素并对其进行转换的处理器.

RenameProcessor.kt

package nl.peperzaken.renameprocessor

import com.google.auto.service.AutoService
import com.sun.source.util.Trees
import com.sun.tools.javac.processing.JavacProcessingEnvironment
import com.sun.tools.javac.tree.JCTree
import com.sun.tools.javac.tree.TreeTranslator
import com.sun.tools.javac.util.Names
import nl.peperzaken.renameannotation.Rename
import javax.annotation.processing.*
import javax.lang.model.SourceVersion
import javax.lang.model.element.TypeElement
import javax.tools.Diagnostic

@AutoService(Processor::class)
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@SupportedAnnotationTypes("nl.peperzaken.renameannotation.Rename")
class RenameProcessor : AbstractProcessor() {

    private lateinit var trees: Trees
    private lateinit …
Run Code Online (Sandbox Code Playgroud)

java android abstract-syntax-tree gradle kotlin

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

未经检查的转化

我不想压制警告.还有另一种处理此警告的方法吗?

"Iterator类型的表达式需要未经检查的转换以符合Iterator"

Iterator<String> it = schemaJSON.getJSONObject("body").keys();
Run Code Online (Sandbox Code Playgroud)

java android json iterator

7
推荐指数
2
解决办法
8461
查看次数

如何反转一个字节

我目前正在研究一个项目,碰巧我必须颠倒一个字节的顺序.我目前正在使用AVR Studio Mega32微控制器.

例如:

0000 0001 becomes 1000 0000
0001 0110 becomes 0110 1000
1101 1001 becomes 1001 1011
Run Code Online (Sandbox Code Playgroud)

首先,我有这个:

ldi r20,0b00010110
Run Code Online (Sandbox Code Playgroud)

反转字节的最简单方法是什么,使r20变为01101000?

assembly reverse byte avr atmega

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

Akka消息传递保证

我试图找出Akka支持的消息传递.我得出以下结论:

最多一次:默认支持

至少一次:支持Akka Persistence

恰好一次:?

Akka是否支持一次?如果没有,我怎么能实现这个目标呢?

akka

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

将自定义类传递给 Fragment

我有一个名为 Data 的自定义类,其中包含所有数据。主要活动创建两个片段。我在主要活动中有一个字段,如下所示:

private Data data = new Data();
Run Code Online (Sandbox Code Playgroud)

这些片段是用这个方法创建的:

private ArrayList<Fragment> getFragments() {
    ArrayList<Fragment> fragments = new ArrayList<Fragment>();
    fragments.add(new fragment_one());
    fragments.add(new fragment_two());
    return fragments;
}
Run Code Online (Sandbox Code Playgroud)

我需要将数据字段传递给片段,以便片段可以访问数据的方法。

我尝试创建一个包,但我无法传递自定义类。我能做什么?

android bundle fragment

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

LinkedHashMap键到ArrayList

将LinkedHashMap的键添加到ArrayList的最简单方法是什么?我想通过删除循环来提高性能.有更有效的方法吗?

for(String key : map.keySet()){
    array.add(key);
}
Run Code Online (Sandbox Code Playgroud)

java android arraylist linkedhashmap

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

如果,否则如果,否则

假设我有两个可以作为参数传递的字符串:

String one = "one";
String two = "two";
Run Code Online (Sandbox Code Playgroud)

以下哪种方法效果最好?

private void exampleOne(String example){
     if(example.equals("one"){
         // do this
     }else{
         // do this
     }
}

private void exampleTwo(String example){
     if(example.equals("one"){
         //do this
     }else if(example.equals("two"){
         // do this
     }
}


private void exampleThree(String example){
     if(example.equals("one"){
         // do this
     }
     if(example.equals("two"){
         // do this
     }
}
Run Code Online (Sandbox Code Playgroud)

java

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

将枚举转换为uint

在以下示例中,当枚举已经是uint时,为什么必须转换为uint?也做: uint,甚至改变什么?如果我删除它,我会得到相同的错误.args.Progress是一个uint.

switch (args.Progress)
{
    case (uint) Values.value1: // works
        break;
    case Values.value2: // error
        break;
}

public enum Values : uint
{
    value1,
    value2
};
Run Code Online (Sandbox Code Playgroud)

c# windows-phone-8.1

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