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的理解,一切都是通过价值传递的.然而,当你开始谈论包含其他对象的对象时,事情会变得有趣,我希望能够更好地沟通,并确保我也完全理解.所以我的观点是,实际上只复制了对象中的基元,而另一方面它包含的任何对象......这些对象的值不会被复制,而只是这些对象的副本.
所以,如果我们与这些成员有一些对象
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) 我想在私有 AWS S3 存储桶上托管文件,只有通过我的 Web 应用程序身份验证的用户才能访问该存储桶。这些文件下载的链接必须是静态的。
简单的代理方法:
我知道这可以使用代理服务来完成。在这种情况下,静态链接将指向该服务,并且该服务将处理请求用户会话的验证,如果它有效,该服务将使用来自 S3 的文件内容进行响应。
预签名 URL 代理方法:
但是,与其实施代理来控制对文件的访问,我想知道是否可以以某种方式使用预先签名的 URL?
https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
在这种情况下,代理的作用只是向用户返回一个预先签名的 URL,而不是来自 S3 的文件的实际负载。然后,最终用户可以使用这个预先签名的 URL 直接从 S3 下载文件。我不清楚的是如何在浏览器中管理此流程,我假设我需要将 JavaScript 编写为以下内容:
我在正确的轨道上吗?
我正在尝试学习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
我正在尝试在我的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) 我读到从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图像的属性?
将记录写入到配置为 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.) 如何确定在任何给定时间流水缓冲区内有哪些数据/记录?
给定一个对象,我们将调用只包含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泛型来解决这个问题,所以我想问一下......假设我有一些类,每个类都实现了一个公共接口,在公共接口中有一个方法叫做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) 试图找出处理此问题的最佳方法:
给定一个包含 2 个字段的表:id 和 data 我想从该表中选择 2 条记录,并使用 SQL 对每条记录的数据字段值执行二进制比较。关于如何最好地做到这一点的任何建议?
使用的数据库是 MySQL