Tag: 铸造

Python 3将范围转到列表

我正在试着制作一个1-1000数字。 显然,这将是讨厌的写/读,所以我试图做一个范围内的列表。 在Python 2中似乎是这样的: some_list = range(1,1000) 会工作,但在Python 3中,范围类似于Python 2的xrange ? 任何人都可以提供一些见解?

“as?”,“as!”和“as”有什么区别?

在升级到Swift 1.2之前,我可以写下这行 – if let width = imageDetails["width"] as Int? 现在,如果迫使我写这一行 – if let width = imageDetails["width"] as! Int? 我的问题是,如果我被迫写在上面,我不能只写下面的代码,它会做同样的事情? 它会给我在imageDetails的所有值相同的结果? if let width = imageDetails["width"] as Int

Java Class.cast()与cast操作符

在我的C ++日子里教过关于C风格演员操作符的邪恶之后,我很高兴地首先发现,在Java 5中, java.lang.Class已经获得了一个cast方法。 我想最后我们有一个OO的方式处理铸造。 原来, Class.cast与C ++中的static_cast 。 这更像reinterpret_cast 。 它不会在预期的地方产生编译错误,而是会延迟到运行时。 这是一个简单的testing用例来演示不同的行为。 package test; import static org.junit.Assert.assertTrue; import org.junit.Test; public class TestCast { static final class Foo { } static class Bar { } static final class BarSubclass extends Bar { } @Test public void test ( ) { final Foo foo = new […]

Java将Image转换成BufferedImage

在StackOverflow上已经有这样的问题了,接受的答案是“cast”: Image image = ImageIO.read(new File(file)); BufferedImage buffered = (BufferedImage) image; 在我的程序中,我尝试: final float FACTOR = 4f; BufferedImage img = ImageIO.read(new File("graphic.png")); int scaleX = (int) (img.getWidth() * FACTOR); int scaleY = (int) (img.getHeight() * FACTOR); Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH); BufferedImage buffered = (BufferedImage) image; 不幸的是我得到运行时错误: sun.awt.image.ToolkitImage不能转换为java.awt.image.BufferedImage 显然铸造不起作用。 问题是:什么是(或有)正确的方式转换图像到BufferedImage?

C#“如”投与经典剧组

可能重复: 在CLR中使用“as”关键字进行投射 我最近了解到一个不同的投资方式。 而不是使用 SomeClass someObject = (SomeClass) obj; 可以使用这个语法: SomeClass someObject = obj as SomeClass; 如果obj不是一个SomeClass,它似乎返回null,而不是抛出一个类转换exception。 我看到,如果转换失败,可能会导致NullReferenceException,并尝试访问someObjectvariables。 所以我想知道这个方法的基本原理是什么? 为什么要使用这种铸造方式而不是(旧的) – 它似乎只是把一个失败的“更深”的问题转移到代码中。

generics和铸造 – 不能将inheritance类转换为基类

我知道这已经很老了,但我对这些问题的理解还不是很好。 任何人都可以告诉我为什么以下不起作用(抛出关于铸造的runtimeexception)? public abstract class EntityBase { } public class MyEntity : EntityBase { } public abstract class RepositoryBase<T> where T : EntityBase { } public class MyEntityRepository : RepositoryBase<MyEntity> { } 而现在的投线: MyEntityRepository myEntityRepo = GetMyEntityRepo(); // whatever RepositoryBase<EntityBase> baseRepo = (RepositoryBase<EntityBase>)myEntityRepo; 那么,任何人都可以解释这是无效的吗? 而且,我没有心情去解释 – 是否有一行代码可以用来实际执行此操作?

为什么Java隐式地(没有强制转换)将`long`转换为`float`?

每当我想到我对投射和转换的理解时,就会发现另一种奇怪的行为。 long l = 123456789L; float f = l; System.out.println(f); // outputs 1.23456792E8 考虑到一个long比float更深一点,我会期待一个明确的强制转换才能被编译。 并不奇怪,我们看到我们已经失去了结果的精确度。 为什么这里不需要演员?

在java中显式types转换的例子

我在http://www.javabeginner.com/learn-java/java-object-typecasting中遇到过这个例子,在它谈到显式types转换的部分,有一个例子让我困惑。 例子: class Vehicle { String name; Vehicle() { name = "Vehicle"; } } class HeavyVehicle extends Vehicle { HeavyVehicle() { name = "HeavyVehicle"; } } class Truck extends HeavyVehicle { Truck() { name = "Truck"; } } class LightVehicle extends Vehicle { LightVehicle() { name = "LightVehicle"; } } public class InstanceOfExample { static […]

如果Chrome扩展程序未安装或使用隐身模式,则Google Chrome浏览器会投放发件人错误

我在Chrome隐身模式下运行Chrome Cast发件人时出错,或者未安装Chrome扩展程序。 Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://dliochdbjfkdbacpmhlcpmleaejidimm/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://hfaagokkkhdbgiakmmlclaapfelnkoah/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://fmfcbgogabcbclcofgocippekhfcmgfj/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js No cast extension found Google投递发件人正试图发送本地“cast_sender.js”的ajax请求。 如果发生这种情况,或者有一个更好的方法来检查是否存在chrome-cast发送者扩展(而不是通过请求ajax请求)? 我相信这些ajax请求是一种询问是否存在扩展名扩展的方法。 我有一个更好的方法来检查是否存在铬扩展扩展?

在PHP中将string转换为整数的最快方法

使用PHP,将string转换为一个整数的最快方法是什么? 为什么这个特定的方法是最快的? 如果得到意外的input,如"hello"或数组,会发生什么?