小编Zug*_*dud的帖子

解析字符串到JodaTime的格式问题无效

String dateString = "20110706 1607";
    DateTimeFormatter dateStringFormat = DateTimeFormat.forPattern("YYYYMMDD HHMM");
    DateTime dateTime = dateStringFormat.parseDateTime(dateString);
Run Code Online (Sandbox Code Playgroud)

产生的堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "201107206 1607" is malformed at " 1607"
    at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:644)
    at org.joda.time.convert.StringConverter.getInstantMillis(StringConverter.java:65)
    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:171)
    at org.joda.time.DateTime.<init>(DateTime.java:168)
......
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?如果我使用模式"YYYYMMDD"将字符串截断为20110706,它可以工作,但我也需要小时和分钟值.奇怪的是,我可以使用相同的模式"YYYYMMDD HHMM"将Jodatime DateTime转换为String

谢谢你的期待

java jodatime

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

如何解释Java中的浅拷贝与按值传递?

根据我对Java的理解,一切都是通过价值传递的.然而,当你开始谈论包含其他对象的对象时,事情会变得有趣,我希望能够更好地沟通,并确保我也完全理解.所以我的观点是,实际上只复制了对象中的基元,而另一方面它包含的任何对象......这些对象的值不会被复制,而只是这些对象的副本.

所以,如果我们与这些成员有一些对象

public class SomeObject {
   private String name;
   private String address;
   private  List<String> friends;

   public SomeObject(String name, String address, List<String> friends) {
      this.name = name;
      this.address = address;
      this.friends = friends;
   }
}
Run Code Online (Sandbox Code Playgroud)

我们这样做了:

List<String> friendsList = new ArrayList<String>();
        friendsList.add("bob");
        friendsList.add("joe");

        SomeObject so1 = new SomeObject("mike", "123 street", friendsList);

        friendsList.add("zoe");
        friendsList.add("rick");
        SomeObject so2 = new SomeObject("david", "300 ave", friendsList);

        System.out.println(so1.getName() + " " + so1.getAddress());
        for (String friend : so1.getFriends()) {
            System.out.println(friend);
        }

        System.out.println(so2.getName() + " " + so2.getAddress()); …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
2
解决办法
588
查看次数

使用预签名 URL 进行 AWS S3 身份验证的用户访问?

我想在私有 AWS S3 存储桶上托管文件,只有通过我的 Web 应用程序身份验证的用户才能访问该存储桶。这些文件下载的链接必须是静态的。

简单的代理方法:

我知道这可以使用代理服务来完成。在这种情况下,静态链接将指向该服务,并且该服务将处理请求用户会话的验证,如果它有效,该服务将使用来自 S3 的文件内容进行响应。

预签名 URL 代理方法:

但是,与其实施代理来控制对文件的访问,我想知道是否可以以某种方式使用预先签名的 URL?

https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html

在这种情况下,代理的作用只是向用户返回一个预先签名的 URL,而不是来自 S3 的文件的实际负载。然后,最终用户可以使用这个预先签名的 URL 直接从 S3 下载文件。我不清楚的是如何在浏览器中管理此流程,我假设我需要将 JavaScript 编写为以下内容:

  1. 从代理服务请求预签名 URL
  2. 等待回应
  3. 使用响应中提供的预签名 URL(预签名 URL)下载实际文件

我在正确的轨道上吗?

javascript amazon-s3 amazon-web-services pre-signed-url

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

如何将基于Java的Cassandra客户端连接到Cassandra集群而不是特定节点?

我正在尝试学习Cassandra并设置了一个4节点的Cassandra集群.我使用Hector编写了一个Java客户端,它目前连接到集群中的硬编码单个节点.理想情况下,我希望我的客户端连接到"集群"而不是特定节点....所以如果4个节点中的任何一个节点关闭,客户端仍将连接到某个东西.从客户端应用程序的角度来看,这是如何工作的?我似乎无法找到一个好的解释.

我的Hector连接字符串当前,我需要在这里指定一个特定的节点:

Cluster c = getOrCreateCluster("Test Cluster", cassandraNode1:9160);
Run Code Online (Sandbox Code Playgroud)

我的Cassandra节点都配置了我的rpc_address:0.0.0.0

java cassandra

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

Android进度微调器,能够显示但不能以编程方式隐藏

我正在尝试在我的testLayout.xml文件中指定一个进度微调器,然后以编程方式显示和隐藏它,就像我在下面的活动代码中所做的那样.然而,发生的事情是进度轮会显示,但即​​使我有setProgressBarVisibility(false)它也永远不会消失; 在末尾.有任何想法吗?谢谢你的意见

布局/ testLayout.xml

    <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@+id/ButtonNew"
        android:text="New" android:layout_alignParentBottom="true" />

    <ListView android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:id="@+id/list"
        android:layout_alignParentTop="true" android:layout_above="@id/ButtonNew" />

    <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:id="@+id/progressBar1" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true"></ProgressBar>


</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

TestActivity.java

    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                getWindow().requestFeature(Window.FEATURE_PROGRESS);
                setContentView(R.layout.testLayout);            
                setProgressBarVisibility(true);
    try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
setProgressBarVisibility(false);
    }
Run Code Online (Sandbox Code Playgroud)

android

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

RTL-android:autoMirrored是否可以处理png图像?

我读到从4.4开始,android支持自动镜像:

在早期版本的Android上,如果您的应用程序包含的图像应按从右到左的布局反转其水平方向,则必须将镜像图像包括在drawables-ldrtl /资源目录中。现在,通过在可绘制资源上启用autoMirrored属性或调用setAutoMirrored(),系统可以为您自动镜像图像。启用后,当布局方向从右到左时,Drawable将自动镜像。

链接:

https://developer.android.com/about/versions/android-4.4.html

这仅适用于矢量图形吗?还是可以与png文件等位图一起使用?

android:autoMirrored属性:

https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

我的问题是,如果我将left-arrow.png嵌入资源作为我的应用程序中的资源,我可以以某种方式为我的图像定义此autoMirrior属性,以便当用户设备设置为rtl语言时,android将动态地对其进行反转。这可能吗?如果是这样,如何配置png图像的属性?

android internationalization

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

AWS Firehose buffering

将记录写入到配置为 S3 作为输出目标的 AWS Firehose 时,此数据在写入 S3 之前缓冲了多长时间?或者是否有最小尺寸阈值?

例如,我正在执行以下操作来添加记录:

aws cli:

aws firehose put-record --delivery-stream-name mytestfirehoseafds --record='Data="{\"asdf\":\"testam\"}"'
Run Code Online (Sandbox Code Playgroud)

结果:

    {
    "RecordId": "meESlTCUOBQwXaJ9NOVwKOLrEL+7y/glB0mIJ6h6Sz8lOJGUX/N+DlZttq4BQuY528j6ResbxQBR4To+V1RMbBvE4rcxP3kYwg0lmdBAEFWlNnzUb3nP214ywtRYRQ7IzCOjY9o1YPpqHNCCYkPd4Qr0StIFxIiBHHZvTcfW+qMbQkcy7Rr3R+wb+RVs9fEF2Fa8P6mD2NXJOE84sasPNYB/mrjaSMn9"
}
Run Code Online (Sandbox Code Playgroud)

我没有立即在我的 S3 存储桶中看到这一点,但是如果我在 aws 控制台中使用“测试数据”功能,我会看到文件被添加到 S3,测试数据包括我上面的测试记录。

所以我的问题是,

1.) Firehose 是否有某种缓冲阈值,在将缓冲数据写入输出源之前必须达到该阈值?

2.) 如何确定在任何给定时间流水缓冲区内有哪些数据/记录?

amazon-s3 amazon-web-services amazon-kinesis-firehose

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

使用Java作为Map键的对象的问题

给定一个对象,我们将调用只包含2个int成员值的loc,我相信我需要提出一种机制来为该对象生成一个哈希码.我在下面尝试的内容不起作用,因为它使用对象引用,尽管具有相同的成员变量,但2个引用将是不同的.

Map<Loc,String> mapTest = new HashMap<Loc,String>();
        mapTest.put(new Loc(1,2), "String 1");
        mapTest.put(new Loc(0,1), "String 2");
        mapTest.put(new Loc(2,2), "String 3");

        System.out.println("Should be String 2 " + mapTest.get(new Loc(0,1)));
Run Code Online (Sandbox Code Playgroud)

经过一些阅读后,似乎我需要为此对象滚动自己的哈希码,并使用该哈希码作为键.只是想确认我在这里是正确的轨道,如果有人可以指导我简单的实现,那将是非常好的.

谢谢

java

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

使用泛型可以更好地解决这个问题

我很确定我可以用Java泛型来解决这个问题,所以我想问一下......假设我有一些类,每个类都实现了一个公共接口,在公共接口中有一个方法叫做getData,我想要制作通用.我遇到的问题是每个类都返回一个不同的对象类型,所以理想情况下我希望它们是通用的,然后在调用的实现类中getData,将它们转换回原始类型.如果我要转换Object为特定类型并返回特定类型,我可以看到它是如何工作的,但是我能用Generics完成相同的最终结果吗?

这里有一些伪代码来概述问题:

public ClassA implements interface x {

    private CustomObjectA customObjectA;
    private Map<DateTime, Map<String, CustomObjectA>> dataMap;

...

    public Map<DateTime, Map<String, CustomObjectA>> getData() {
        return this.dataMap;
    }
}

public ClassB implements interface x {

    private CustomObjectA customObjectB;
    private Map<DateTime, Map<String, CustomObjectB>> dataMap;

...

    public Map<DateTime, Map<String, CustomObjectB>> getData() {
        return this.dataMap;
    }
}

public interface x {
    public Map<DateTime, Map<String, genericObject>> getData();
}


public ClassC {
    public testGeneric(x objX) {

        CustomObjectA cOA = objX.getData();
        CustomObjectB …
Run Code Online (Sandbox Code Playgroud)

java generics

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

使用 SQL 对 MySQL 字段值进行二进制比较

试图找出处理此问题的最佳方法:

给定一个包含 2 个字段的表:id 和 data 我想从该表中选择 2 条记录,并使用 SQL 对每条记录的数据字段值执行二进制比较。关于如何最好地做到这一点的任何建议?

使用的数据库是 MySQL

mysql sql

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