小编Ema*_*rsa的帖子

类型Map <String中的方法,捕获#1-of?extends Object>不适用

JAVA由于接口,我实现了以下方法:

public String importDocument(ImportSource source, Map<String, ? extends Object> paramMap);
Run Code Online (Sandbox Code Playgroud)

当我尝试做以下时,我收到编译警告.片段:

paramMap.put("Key", "Value");
Run Code Online (Sandbox Code Playgroud)

错误:

方法put(String,capture#1-of?extends Object)在Map类型中不适用于参数(String,String)

为什么?

java generics compiler-errors

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

Struts2递增前一组<s:set />值

我正在使用Struts2处理JSP,我必须迭代两个列表,并更改每个<tr/>打印的背景代码.

我的JSP片段:

<s:set var="counter" value="0" scope="page" />
<s:iterator value="listaContoCapitale" status="i">
    <s:iterator value="utilizzi" status="j">

    <s:if test="#counter == 0 || #counter % 2 == 0">
        <s:set var="trclass" value="'rigaSfondo1'" scope="page" />
    </s:if>
    <s:else>
        <s:set var="trclass" value="''" scope="page" />
    </s:else> 
    <tr class="${trclass}">
        ....tds
    </tr>
    </s:iterator>
    <s:set var="counter" value="here i have to change its value (increment it by1)" />
</s:iterator>
Run Code Online (Sandbox Code Playgroud)

我需要在内循环的每一步增加我的计数器.有没有办法通过简单的struts标签增加我的计数器值?我知道我可以使用Java scriptlet但是如果可能的话我宁愿保持JSP清晰.

java jsp struts2 jsp-tags

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

关于IEnumerable <IList <object >>的C#foreach编译但不应该编译

我有以下代码:

IEnumerable<IList<MyClass>> myData = //...getMyData

foreach (MyClass o in myData)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

它编译,运行,显然我得到了System.InvalidCastException.
为什么编译器不抱怨?MyClass是一个简单的bean,没有扩展名.

编辑1:
正如David所建议的那样,将类型IList转换List为编译器抱怨

编辑2:
我已经明白行为是在C#语言定义中指定的.但是,我不明白为什么允许这样的转换/转换,因为在运行时我总是得到一个InvalidCastException.为了更深入,我打开了这个.

c# generics nested-generics

7
推荐指数
3
解决办法
163
查看次数

PHPExcel:"无法读取文件"错误将Excel转换为PDF(.xlsx到.pdf)

我有一个只有一个电子表格的xlsx.我使用PHPExcel通过以下代码将其转换为pdf:

        error_reporting(E_ALL);
        date_default_timezone_set('Europe/London');
        require_once 'phpExcel/PHPExcel/IOFactory.php';
        require_once 'phpExcel/PHPExcel.php';

        $inputFileName = 'doc/ModUnico';
        $excel2 = PHPExcel_IOFactory::createReader('Excel2007');
        $excel2 = $excel2->load($inputFileName.'.xlsx');
        $excel2->setActiveSheetIndex(0);
        $excel2->getActiveSheet()->setCellValue('H5', '4');
        $objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
        $objWriter->save($inputFileName.'_.xlsx');


        $objPHPexcel = PHPExcel_IOFactory::load($inputFileName.'_.xlsx');
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment;filename="test.pdf"');
        header('Cache-Control: max-age=0');

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'PDF');
        $objWriter->writeAllSheets();
        $objWriter->setPreCalculateFormulas(false);
        $objWriter->save('php://output');
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试打开返回的文件时,我收到错误消息"无法读取文件".

EIDT:Renderer补充道

        $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
        $rendererLibrary = 'mpdf.php';
        $rendererLibraryPath = dirname(__FILE__).'/MPDF57/' . $rendererLibrary;


        if (!PHPExcel_Settings::setPdfRenderer(
            $rendererName,
            $rendererLibraryPath
            )) {
                die(
                    'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
                    '<br />' .
                    'at the top of this script as appropriate …
Run Code Online (Sandbox Code Playgroud)

php pdf xlsx phpexcel

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

在内存.NET中编辑ZipArchive

我正在尝试编辑XmlDocumentZip文件中包含的文件:

var zip = new ZipArchive(myZipFileInMemoryStream, ZipArchiveMode.Update);
var entry = zip.GetEntry("filenameToEdit");
using (var st = entry.Open())
{
    var xml = new XmlDocument();
    xml.Load(st);
    foreach (XmlElement el in xml.GetElementsByTagName("Relationship"))
    {
        if(el.HasAttribute("Target") && el.GetAttribute("Target").Contains(".dat")){
            el.SetAttribute("Target", path);
        }
    }
    xml.Save(st);
}
Run Code Online (Sandbox Code Playgroud)

执行此代码后,所包含的文件不会更改.如果不是xml.Save(st);我把xml写入磁盘,我得到了编辑过的.

为什么编辑后的文件没有写入zip?我如何解决它?

编辑:

我更新了代码:

var tmp = new MemoryStream();
using (var zip = new ZipArchive(template, ZipArchiveMode.Read, true))
{
    var entry = zip.GetEntry("xml");
    using (var st = entry.Open())
    {
        var xml = new XmlDocument();
        xml.Load(st);
        foreach (XmlElement el in …
Run Code Online (Sandbox Code Playgroud)

c# xmldocument edit ziparchive

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

F#WebApi Cors不起作用

我正在尝试创建一个写入F#并启用的WebApi项目CORS.
控制者:

type DoItController() =
    inherit ApiController()

    [<EnableCors(origins = "*", headers = "*", methods = "Get")>]
    [<HttpGet>]
    [<Route "api/GetGenerateExcel">]
    member __.GetGenerateExcel() =
        async {
            // Some code
            return "It works"

        } 
        |> Async.StartAsTask


}
Run Code Online (Sandbox Code Playgroud)

直接从它工作的浏览器打开它.通过调用它AngularJS或纯Javascript我得到401.

C#中的等效控制器工作原理:

public class DoItController : ApiController
    {
        [EnableCors("*", "*", "Get")]
        [HttpGet]
        [Route("api/GetGenerateExcel")]
        public async Task<string> GetGenerateExcel()
        {
            //Some code
            return "It works"
        }
    }
Run Code Online (Sandbox Code Playgroud)

我也查了一下Global.asax,他们也匹配:

type Global() =
    inherit HttpApplication()

    static member RegisterWebApi(config: …
Run Code Online (Sandbox Code Playgroud)

f# unauthorized cors asp.net-web-api2

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

Google 云存储权限被拒绝

我设置了一个Cloud Run使用Bucketon 的Cloud Storage。我在本地运行它Docker Container,使用文件传递凭据json,从 中创建和下载IAM & Admin,并且它可以工作。部署后,写入存储桶会引发错误:

{
    500 unable to sign bytes: googleapi: Error 403: Permission 'iam.serviceAccounts.signBlob' denied on resource (or it may not exist).
    Details:
    [{
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "domain": "iam.googleapis.com",
        "metadata": {
            "permission": "iam.serviceAccounts.signBlob"
        },
        "reason": "IAM_PERMISSION_DENIED"
    
    }]
    []
}
    
Run Code Online (Sandbox Code Playgroud)

任何想法?

permission-denied bucket google-cloud-storage

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

Java + JNA:找不到指定的过程

我正在尝试使用visual studio创建一个dll文件,并在java项目中使用/访问它.库似乎被加载,但总是抛出相同的异常:线程"main"中的异常java.lang.UnsatisfiedLinkError:查找函数'function'时出错:找不到指定的过程.我的C/C++技能不是最好的,所以问题就在那里.我尝试编辑h和cpp文件,使用类,命名空间,静态方法和Web上的其他人员,但无所事事.我还看到其他帖子谈论Depency Walker Tool,但它无法打开我的dll,我也看到编译器在函数名称中添加了一些奇怪的后缀,因为我知道可以通过使用"estern"来避免它h或cpp文件中的"C",但我无法使用.

我的界面:

import com.sun.jna.Library;
import com.sun.jna.Native;

public interface SimpleDll extends Library {

    SimpleDll instance = (SimpleDll) Native.loadLibrary("SimpleDll", SimpleDll.class);

    void function();


}
Run Code Online (Sandbox Code Playgroud)

我的主要课程:

public class Test_Dll {

    public static void main(String[] args) {
        SimpleDll simpleDll = SimpleDll.instance;

        simpleDll.function();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的文件:

#ifndef SIMPLEDLL
#define SIMPLEDLL

namespace simpeDll{


    static void function();


}
#endif
Run Code Online (Sandbox Code Playgroud)

我的cpp文件:

#include "stdafx.h"
#include "simpleDll.h"
#include <stdexcept>

using namespace simpeDll;

static void function(){

}
Run Code Online (Sandbox Code Playgroud)

java dll jna

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

Linq-Query是否被称为toList()生成包含元素的副本?

我遇到了一个(对我而言)奇怪的行为.这是代码:

var objects = from i in items
              //some calculations
              select something;

// other calculations

objects.ToList().ForEach(x => {
    //some calculations
    x.Property = "some text"
});

return objects;
Run Code Online (Sandbox Code Playgroud)

首先我生成一个IEnumerable,它是对db的查询,我跳过了细节.然后我必须做其他计算,最后我迭代我的对象来设置另一个参数.运行此代码,一旦IEnumerable返回对象,Property就不会设置它们.

否则,如果我ToList()按照后面的Linq表达式移动,Property则设置为:

var objects = (from i in items
              //some calculations
              select something).ToList();

// other calculations

objects.ForEach(x => {
    //some calculations
    x.Property = "some text"
});

return objects;
Run Code Online (Sandbox Code Playgroud)

据我所知,对象没有复制,但被引用......对吗?显然代码背后会发生什么?有什么不同?

c# linq tolist

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

需要Android API seekToMillis()说明

我正在Google API用于渲染YouTube视频.Ißm试图寻找特定时间,seekToMillis()但视频始终从头开始.

码:

    youTubePlayerView.initialize(API_KEY, new YouTubePlayer.OnInitializedListener() {

        public void onInitializationSuccess(Provider arg0, YouTubePlayer player, boolean arg2) {
            youTubePlayer = player;
            youTubeThumbnailView.setVisibility(View.GONE);
            youTubePlayerView.setVisibility(View.VISIBLE);
            youTubePlayer.loadVideo("o7VVHhK9zf0");
            youTubePlayer.seekToMillis(50000);



        }

        public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) {
            youTubePlayerView.setVisibility(View.GONE);
        }
    });
Run Code Online (Sandbox Code Playgroud)

android google-api youtube-api

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