我正在将我的JSON库从org.json更改为Jackson,我想迁移以下代码:
JSONObject datasets = readJSON(new URL(DATASETS));
JSONArray datasetArray = datasets.getJSONArray("datasets");
Run Code Online (Sandbox Code Playgroud)
现在在杰克逊我有以下内容:
ObjectMapper m = new ObjectMapper();
JsonNode datasets = m.readTree(new URL(DATASETS));
ArrayNode datasetArray = (ArrayNode)datasets.get("datasets");
Run Code Online (Sandbox Code Playgroud)
但是我不喜欢那里的演员,是否有可能ClassCastException?是否有一个等效的方法getJSONArray,org.json以便我有适当的错误处理,以防它不是一个数组?
我正在尝试在AWS上创建一个多区域无服务器应用程序.我按照这里给出的说明进行操作.我正在使用无服务器框架,它使用Cloudformation脚本在AWS上创建所有资源.
我想为API网关创建一个自定义域作为区域端点.创建区域端点时,它会生成目标域.我想知道如何在Cloudformation脚本中获取目标域的值?
当我创建Edge优化端点时,我使用该DistributionDomainName属性获取CloudFront部署的值.但是,在创建区域端点时,我没有看到目标域名的任何属性.我尝试使用DistributionDomainName区域端点的属性,但它会抛出一个错误,表示没有DistributionDomainName.
以下是我脚本的一部分 -
# Creates a custom domain for the ApiGateway
customDomain:
Type: 'AWS::ApiGateway::DomainName'
Properties:
DomainName: ${self:custom.domain}
EndpointConfiguration:
Types:
- REGIONAL
RegionalCertificateArn: ${self:custom.certificateArn}
# Insert a DNS record in route53 hosted zone to redirect from the custom domain to CF distribution
dnsRecord:
Type: AWS::Route53::RecordSet
Properties:
Region: ${self:provider.region}
SetIdentifier: ${self:provider.region}
HostedZoneId: ${self:custom.hostedZoneId}
Name: ${self:custom.domain}
Type: CNAME
TTL: 60
ResourceRecords:
- "Fn::GetAtt": [customDomain, DistributionDomainName]
Run Code Online (Sandbox Code Playgroud)
请帮忙.谢谢!
UPDATE
Cloudformation现在通过RegionalDomainName属性返回区域域名.它可以用作Fn:GetAtt : [customDomain, …
regional amazon-web-services aws-cloudformation aws-api-gateway serverless-framework
我有两个类定义如下:
class A {
public static String getName(){
Class c = getCalledClass();
return c.getSimpleName();
}
}
class B extends A {
//no methods are defined here!
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以组合static方法getCalledClass(),以便调用A.getName()将返回A并B.getName()返回B?
谢谢.
我将Resultset对象传递给每个线程.每个线程都连接到数据库并插入数据.直到线程110它工作正常.在它穿过111线程后,它抛出上述异常.
我正在使用oracle 11g.
我的示例线程代码是:
class MyThreadClass implements Runnable
{
public Connection connection;
public Statement statement2;
public ResultSet rs2;
public String cookie;
public MyThreadClass(ResultSet rs1)
{
rs2=rs1;
}
public void run()
{
try
{
cookie=rs2.getString("COOKIE");
driver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:xx";
/* connection
statement2.executeUpdate("INSERT INTO visit_header VALUES ('"+cookie+"')");
}
Run Code Online (Sandbox Code Playgroud)
我没有得到如何处理此异常.
我想知道输入的字符串是否包含Unicode:0x1a值是否在java中.我无法识别→和其他特殊字符的值.
根据Oracle网站上的Java教程:
枚举类型是一种特殊的数据类型,它使变量成为一组预定义的常量.变量必须等于为其预定义的值之一.
我同意这些值是预定义的.但它们真的是常量吗?
该enum值可以通过改变数据成员的值被改变.那么,它们逻辑上可以称为常量吗?
假设我有enum如下:
public enum Color
{
BLACK("0x000000"), WHITE("0xffffff");
Color(String rgbValue)
{
this.rgbValue = rgbValue;
}
private String rgbValue;
public String getRgbValue()
{
return this.rgbValue;
}
public void setRgbValue(String rgbValue)
{
this.rgbValue = rgbValue;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面enum,我可以rgbValue通过使用setter 更改值.如果我执行以下语句集,则状态BLACK会发生变化.
System.out.println(Color.BLACK.getRgbValue());
Color.BLACK.setRgbValue("0x000010");
System.out.println(Color.BLACK.getRgbValue());
Run Code Online (Sandbox Code Playgroud)
上面的代码产生以下输出:
0x000000
0x000010
Run Code Online (Sandbox Code Playgroud)
那么我们真的可以将enum值称为常量吗?是否应该enum防止价值状态发生变化?不应该将数据成员enum声明为final默认值,以便enum可以真正称为常量吗?
如果enum未保存状态,那么正常class与enum预定数量的对象之间的区别是什么? …