小编Mar*_*arz的帖子

AWS S3 - 列出没有前缀的文件夹中的所有对象

我在检索AWS S3中文件夹内的所有对象(文件名)时遇到问题.这是我的代码:

ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
            .withBucketName(bucket)
            .withPrefix(folderName + "/")
            .withMarker(folderName + "/")

    ObjectListing objectListing = amazonWebService.s3.listObjects(listObjectsRequest)

    for (S3ObjectSummary summary : objectListing.getObjectSummaries()) {
        print summary.getKey()
    }
Run Code Online (Sandbox Code Playgroud)

它返回正确的对象但是带有前缀,例如foldename/filename

我知道我可以使用java或substring来排除前缀,但我只想知道AWS SDK中是否有方法.

java amazon-s3 amazon-web-services

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

Java代码中的Fibonacci

public class Fibonacci {
    public static long fib(int n) {
        if (n <= 1) return n;
        else return fib(n-1) + fib(n-2);
    }

    public static void main(String[] args) {
        int N = Integer.parseInt(args[0]);
        for (int i = 1; i <= N; i++)
            System.out.println(i + ": " + fib(i));
    }

}
Run Code Online (Sandbox Code Playgroud)

假设用户输入"java Fibonacci 7",结果将如下所示:1:1

2:1

3:2

4:3

5:5

6:8

7:13

我似乎完全混淆了它的工作原理.从数字3开始.当fib(i)方法通过3时,它不应该返回3,因为如果n = 3那么fib(n-1)/的总和是2 /和fib(n-2)/1 /是3.等等其他数字前进.

java algorithm

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

转换对象类型

我对构建对象类型有点困惑.鉴于以下示例:

public class Test() {

 public void method1() { System.out.println("Method 1");
 public void method2() { System.out.println("Method 2");
 }

public class Test1() extends Test{

  @Override public void method1() { System.out.println("Method 11");
  @Override public void method2() { System.out.println("Method 22");
   public void method 3() { System.out.println("Method 3");

   public static void main(String[] args) {
       Test a = new Test1(); 
       a.method1(); //method invokes the overridden method1() of Test1, not Test the superclass
       a.method2(); //method invokes the overridden method2() of Test1, not Test the superclass
       a.method3(); …
Run Code Online (Sandbox Code Playgroud)

java casting

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

Statement.getGenerateKeys() 方法

我目前正在观看视频教程,我对这段代码感到非常困惑:

public static boolean insert(Member mbr) throws Exception {

    String SQL = "INSERT INTO test (first_name, last_name) " +
                "VALUES (?, ?)";
    ResultSet keys = null;
    try (
            Connection con = DBUtil.getConnection(DBType.MYSQL);
            PreparedStatement stmt = con.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS);
        ) {

        stmt.setString(1, mbr.getFname());
        stmt.setString(2,  mbr.getLname());
        int affected = stmt.executeUpdate();

        if (affected == 1) {
            keys = stmt.getGeneratedKeys();
            keys.next();
            int newKey = keys.getInt(1);
            mbr.setMemberid(newKey);
        } else {
            System.err.println("No rows affected");
            return false;
        } 
    } finally {
        if (keys != null) keys.close();
    }
    return …
Run Code Online (Sandbox Code Playgroud)

java

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