小编Lim*_*awk的帖子

我应该设置MaxMetaspaceSize吗?

因此,在提出这个问题之后,很快就发现重要的问题不是"我怎么能",而是"我应该"吗?

我们的客户正在从Java7迁移到Java8(使用Tomcat7).Java7需要设置-XX:MaxPermSize,并且由于个人需求和使用,一些客户已将其最大值增加到安装程序设置的默认值以上.

我应该设置-XX:MaxMetaspaceSize(以前的-XX:MaxPermSize设置)谁定义了一个自定义的最大客户?新安装怎么样?我们应该设置-XX:MaxMetaspaceSize吗?

这样的决定有哪些利弊?

tomcat memory-management java-8

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

在Android中使用API​​ 4按名称查找Google云端硬盘表

我按照下面的"Android快速入门"进行操作.

https://developers.google.com/sheets/api/quickstart/android

效果很好.

但该示例将电子表格ID硬编码为现有电子表格.

String spreadsheetId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms";
Run Code Online (Sandbox Code Playgroud)

我需要能够按名称查找现有的电子表格,并存储ID(供以后使用).

我想做这样的事情:

private com.google.api.services.sheets.v4.Sheets sheetsService = null;


HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();

sheetsService = new com.google.api.services.sheets.v4.Sheets.Builder(
        transport, jsonFactory, credential)
        .setApplicationName("My Application Name")
        .build();

String spreadsheetId = null;
List<Spreadsheet> allSpreadsheets = sheetsService.spreadsheets().getAListOfAllSpreadsheets;
for (Spreadsheet spreadsheet : allSpreadsheets) {
    if (spreadsheet.getName().equals("My Sheet")){
        // found!
        spreadsheetId = spreadsheet.getId();
    }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前!

android google-sheets google-spreadsheet-api

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

使用Sheets API v4(Java)获取Google表格上次编辑日期

我在Android中使用Google表格API v4.

https://developers.google.com/sheets/api/quickstart/android

我需要知道最后一次修改工作表的时间(包括用户); 我需要这个人:

在此输入图像描述

我想做这样的事情:

    Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
    Date date = spreadsheet.getProperties().getLastEditDate();
Run Code Online (Sandbox Code Playgroud)

但是,当然,不getLastEditDate()存在这样的属性方法.是否有参数或其他API方法来调用以获取此数据?

更好的方法是获取每个单元格的修改日期......但我会考虑整个电子表格或表格的日期.

google-api google-sheets google-drive-android-api google-sheets-api

8
推荐指数
2
解决办法
2735
查看次数

从Google Drive Android API获取帐户名称/电子邮件

我正在使用新的Google云端硬盘Android API,我可以连接,并执行所有允许我这样做的操作,但为了使用SpreadsheetService,我需要从已登录的用户中提取accountName/email.

我怎么做?

这是我连接Google Drive API的代码.它工作正常.

private void connect() {

    if (isGooglePlayServicesAvailable()) {
        if (mGoogleApiClient == null) {
            mGoogleApiClient = new GoogleApiClient.Builder(this)
                    .addApi(Drive.API)
                    .addScope(Drive.SCOPE_FILE)
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this)
                    .build();
        }
        // And, connect!

        if (!mGoogleApiClient.isConnecting() && !mGoogleApiClient.isConnected()) {
            mGoogleApiClient.connect();
            writeLog("Connecting...");
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我使用SpreadsheetService API的地方,但我需要帐户名来获取令牌.

String accountName = "???"; // how do I get this From GoogleClientApi / mGoogleApiClient ?
String accessToken = GoogleAuthUtil.getTokenWithNotification(GDriveActivity.this, accountName, scope, null);
SpreadsheetService service = new SpreadsheetService("v1");
Run Code Online (Sandbox Code Playgroud)

我试过这个添加这个:

String accountName = …
Run Code Online (Sandbox Code Playgroud)

android google-spreadsheet-api google-drive-android-api

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

何时在单元测试中绕过封装是否合适?

我最近开始意识到powermock的Whitebox功能.(总之,它允许您直接测试私有方法或直接从单元测试修改私有成员 - 同时保持私有!)

我知道除了可见方法之外,还有一些思想框架在单元测试之后不屑一顾,但是有时它只是想要一个简单的测试来确保深层辅助方法正在做它应该做的事情......没有经历可能是巨大的开销来准备父方法过滤到你的方法所需的参数和模拟......然后你只需要做魔法来提取内部方法的结果.简而言之,有时测试这些内部方法需要最复杂且难以遵循的单元测试.(而且,我们公司的政策是100%的单位测试覆盖率.这些方法必须经过测试!)

我知道一种方法更改方法访问器以允许单元测试(例如,从更改privateprotected,但powermock Whitebox允许直接测试而不更改源代码.

不过,妈妈总是说,"只因为你可以,并不意味着你应该这样做."

是否适合测试这样的内部方法?如果是这样,我应该使用的经验法则是什么?

testing junit unit-testing powermock white-box

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

liquibase列的默认可为空约束设置是什么?

我正在创建一个新表,如下所示:

    <createTable tableName="myTable">
        <column name="key" type="int" autoIncrement="true">
            <constraints primaryKey="true" primaryKeyName="PK_myTable" nullable="false"/>
        </column>
        <column name="name" type="nvarchar(40)">
            <constraints nullable="false"/>
        </column>
        <column name="description" type="nvarchar(100)">
            <constraints nullable="true"/>
        </column>
    </createTable>
Run Code Online (Sandbox Code Playgroud)

至于nullable约束,如果我省略该属性的默认设置是什么?

例如,如果我只这样做:

<column name="description" type="nvarchar(100)"/>
Run Code Online (Sandbox Code Playgroud)

......列可以为空吗?

更重要的是,指定此文档的文档在哪里(因为我还有其他问题)?

我看了一下:Liquibase Column Tag,但它只是含糊地说:

可空的 - 列可以为空吗?

nullable liquibase

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

使用不同数据重用Excel Excel工作簿(使用VBA)

我为客户创建了一个包含大量VBA代码的Excel工作簿.客户将向我提供数据.我将该数据导入到VBA载入模板中,将其另存为xlsm,然后将其传递给客户.我得到了工作簿的报酬,因此我需要阻止他们尝试将新数据复制到现有工作簿中并重新使用它.

我怎么能以某种方式阻止客户重复使用工作簿,只需在主工作表上输入新数据,然后保存为新的工作簿,并免费使用VBA代码.(或者,他们可以在Windows中复制文件,然后在复制的版本上输入新数据.)我需要检测初始导入数据中数据的重大变化.

主表上的数据是相当静态的(在许多已知列上甚至可能是完全静态的).我正在考虑在导入时随机抽取一些单元格数据(可能是10个随机单元格,或行数等),并将这些数据存储在某处.例如,如果50%的单元格改变数据,我可以禁用(或短路)代码中的公共入口点......或其他什么?

我想让客户保持一定的灵活性,但要防止滥用.

  • 上面是否有比我的一般想法更好的方法?
  • 我在哪里可以存储该数据(它应该是工作表的一部分,但不能由客户更改).也许隐藏的密码锁定单元格?
  • 是否有一些我不知道的可接受的方式?

security excel vba excel-vba

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

SQLite Random()在ORDER BY中没有正确排序

我的SQLite查询似乎是从规定的"ORDER BY"子句返回结果.当我运行以下命令时,第三列IS给出了我想要的随机值,但是ORDER BY看起来被忽略了.结果集看似随机排序.

// frequency is an int of either 5, 10, or 15
String query = "SELECT id, name, ABS( RANDOM() % frequency ) FROM person ORDER BY 3"

SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.rawQuery(query, null);
Run Code Online (Sandbox Code Playgroud)

返回类似于:

id    name    (random)
------------------------------
16    Joe     1
 4    Jack    0
67    Jane    7
23    Bob     3
Run Code Online (Sandbox Code Playgroud)

我尝试过很多变种,包括以下内容,但都有类似的结果:第三列没有排序的行:

"SELECT id, name, (RANDOM() % frequency) AS myRand FROM person ORDER BY myRand"
id    name    myRand
------------------------------
23    Bob     2
16    Joe     1 …
Run Code Online (Sandbox Code Playgroud)

sql sqlite sorting android sql-order-by

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

Git stash 冻结(控制台无响应)

Git 对任何类型的git stash命令都冻结了。

在此处输入图片说明

按 [Enter] 什么也没有发生……永远。

但其他 git 命令似乎工作正常。我可以拉,提交等。

在此处输入图片说明

我从命令行尝试了多次。我在多个存储库位置(其中一些是干净的结帐位置)上尝试了它。我多次重新启动计算机。我什至卸载了 git,并重新安装了 git,结果相同:stash冻结,直到我从 TM 中杀死它。

作为最后一个增加的复杂性,我正在运行 SourceTree (1.8)。我让 SourceTree 运行嵌入式 Git 版本: 在此处输入图片说明

你猜怎么着?如果我使用 SourceTree 隐藏...它工作得很好。

  • 视窗 10,64 位
  • git 2.8.4

git git-stash

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

为什么 [PrtSc] 按钮在 Intellij-Idea 或 Microsoft SQL Server Management Studio 中不起作用?

我正在使用第三方屏幕捕获应用程序 (Screenpresso)。它被配置为当我按下 时开始屏幕捕获PrtSc。确实它可以工作,除非Intellij 具有 Windows 焦点。事实上,要截屏代码,我必须专注于任何其他窗口按下PrtSc,然后选择 Intellij 中的区域。

我查看了所有设置,尤其是 Keymap 设置,但看不到任何其他已分配给PrtSc. 当然,我不太确定。当我尝试通过以下方式查找设置时通过快捷方式查找操作没有任何反应,因为按下PrtSc没有效果。

我知道这在以前版本的 Intellij 中对我有用(尽管我不记得是什么版本)。但PrtSc曾经像其他所有应用程序一样在 Intellij 中工作。

所以我想问题是,为什么Intellij 会吃掉PrtSc按键事件?我可以关闭它以便事件正确传递到我的专用屏幕捕获应用程序。

Intellij 2019.2.4 Windows 10、64b

sql-server keyboard-shortcuts intellij-idea printscreen

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