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)
为什么?
我正在使用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清晰.
我有以下代码:
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.为了更深入,我打开了这个.
我有一个只有一个电子表格的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) 我正在尝试编辑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) 我正在尝试创建一个写入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) 我设置了一个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)
任何想法?
我正在尝试使用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) 我遇到了一个(对我而言)奇怪的行为.这是代码:
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)
据我所知,对象没有复制,但被引用......对吗?显然代码背后会发生什么?有什么不同?
我正在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) c# ×3
java ×3
generics ×2
android ×1
bucket ×1
cors ×1
dll ×1
edit ×1
f# ×1
google-api ×1
jna ×1
jsp ×1
jsp-tags ×1
linq ×1
pdf ×1
php ×1
phpexcel ×1
struts2 ×1
tolist ×1
unauthorized ×1
xlsx ×1
xmldocument ×1
youtube-api ×1
ziparchive ×1